IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Control invisible dans ma fenêtre [Débutant]


Sujet :

Windows Presentation Foundation

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 18
    Points : 15
    Points
    15
    Par défaut Control invisible dans ma fenêtre
    Bonjour,

    J'essaye d'incorporer un lecteur VLC dans mon application via vlcdotnet.
    Lorsque je lance mon application j'ai le son de la vidéo mais pas l'image, ma fenêtre reste blanche.

    Après plusieurs recherche j'ai vu qu'il fallait ajouter le control dans ma fenêtre c'est ce que je fais avec la ligne 2. Mais apparemment cela ne marche pas, on ma dit de passer par un GridView ou panel et d'utiliser la propriété Controls.add(). Le problème c'est que j'ai pas de control Panel et quand je met un GridView dans mon fichier xaml j'ai pas de propriété Controls donc je ne sais pas quoi faire.

    Auriez vous une idée ?
    Merci de vos réponse

    Voici mon code actuelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    player = new VlcControl();
    defaultGrid.Children.Add(player);
     
    player.Name = "Player";
    player.Rate = 0.0F;
    player.RenderSize = new System.Windows.Size(200, 100);
     
    Vlc.DotNet.Core.Medias.MediaBase media = new PathMedia(file);
    player.Media = media;
    player.Play();

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Tulifer Voir le message
    on ma dit de passer par un GridView
    GridView ça m'étonnerait... Grid par contre ça me semble plus adapté

    Citation Envoyé par Tulifer Voir le message
    ou panel et d'utiliser la propriété Controls.add()
    Ca c'est pour Windows Forms, pas pour WPF

    C'est quoi defaultGrid dans ton code? Une Grid que tu as créée en XAML ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    defaultGrid est bien une Grid créé en Xaml.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Tu as essayé de déclarer le VlcControl directement en XAML?
    Pourquoi tu définis la RenderSize? Normalement il ne faut pas la setter soi-même, sauf cas très particuliers (c'est indiqué dans la doc d'ailleurs).
    Tu es sûr qu'il faut mettre le Rate à 0 ? Est-ce que ça ne désactive pas carrément la lecture ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Oui j'ai essayé de déclarer le VlcControl directement en Xaml, même problème du son mais de vidéo.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Wpf:VlcControl x:Name="player" HorizontalAlignment="Left" Height="194" Margin="37,34,0,0" VerticalAlignment="Top" Width="222" />
    Citation Envoyé par tomlev Voir le message
    Pourquoi tu définis la RenderSize? Normalement il ne faut pas la setter soi-même, sauf cas très particuliers (c'est indiqué dans la doc d'ailleurs).
    J'ai essayé en définissant le RenderSize car j'ai pensé que le problème pouvait venir de là car je définissais pas la taille du lecteur.

    Citation Envoyé par tomlev Voir le message
    Tu es sûr qu'il faut mettre le Rate à 0 ? Est-ce que ça ne désactive pas carrément la lecture ?
    J'ai essayé avec plusieurs valeurs dont celle de la vidéo et cela ne changeait rien. Donc je peut supprimer cette ligne pour le moment.
    La lecture n'est pas désactivé car j'ai toujours l'audio.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Bizarre cette histoire...

    Essaie de regarder avec un outil comme Snoop si l'arbre visuel du VlcControl est bien construit. C'est possible qu'il ne trouve pas le style par défaut et que le contrôle n'ait donc rien à afficher...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    J'ai regardé je vois bien mon control "VlcControl" mais celui-ci n'a aucun style d'appliqué.
    Donc je dois lui appliqué un style pour qu'il soit visible ?

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Tulifer Voir le message
    J'ai regardé je vois bien mon control "VlcControl" mais celui-ci n'a aucun style d'appliqué.
    Donc je dois lui appliqué un style pour qu'il soit visible ?
    Tu veux dire que le style est null ? Où que le contrôle n'a rien dans son arbre visuel ? (aucun élément enfant visible dans Snoop)
    Normalement ça devrait marcher tout seul si la lib était bien faite... Si ce n'est pas le cas, il faut lui appliquer un style manuellement. Le style doit exister quelque part dans un fichier XAML dans les ressources de la lib

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Je veux dire que celui-ci n'a rien dans son arbre visuel.

    Nom : csharplecteur.PNG
Affichages : 156
Taille : 66,6 Ko

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    OK, j'ai jeté un coup d'oeil au code du contrôle, en fait j'ai l'impression que c'est normal qu'il n'ai pas d'arbre visuel : ce n'est pas le contrôle qui fait directement le rendu, il faut se binder à sa propriété VideoSource. De plus, il y a un peu de code d'initialisation à mettre au début. Tu as fait tout ce qui est décrit ici ?
    http://vlcdotnet.codeplex.com/wikipage?title=Wpf

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Alors, le code d’initialisation était bien mis au départ, après plusieurs essaie non concluant j'ai enfin réussi.

    Initi(); juste une procédure pour la config du lecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                InitializeComponent();
                Init();
     
                this.file = file;
     
                player.Media = new PathMedia(this.file);
     
                Binding binding = new Binding("VideoSource");
                binding.Source = player;
                Image img = new Image();
                img.SetBinding(Image.SourceProperty, binding);
     
                player.Play();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <Grid>
            <Wpf:VlcControl x:Name="player" />
     
            <Grid Grid.Row="0">
                <Grid.Background>
                    <VisualBrush Stretch="Uniform">
                        <VisualBrush.Visual>
                            <Image Source="{Binding ElementName=player, Path=VideoSource}" />
                        </VisualBrush.Visual>
                    </VisualBrush >
                </Grid.Background>
            </Grid>
        </Grid>
    Merci de t'es réponse et bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modifier dynamiquement un ou plusieurs controls dans une fenêtre
    Par boubou38 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 13/01/2012, 10h58
  2. CList Control dans nouvelle fenêtre
    Par Kermichou dans le forum MFC
    Réponses: 14
    Dernier message: 18/03/2011, 16h55
  3. [VS 2005][Designer] Controles invisibles dans le designer
    Par Skalp dans le forum Visual Studio
    Réponses: 5
    Dernier message: 10/07/2008, 14h45
  4. [VB6] [Interface] Nbre de contrôles maxi dans une feuille
    Par Midou dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/10/2002, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo