2016-11-20 2 views
1

Ce type de question est asked plusieurs fois.
mais pour une raison quelconque, il ne fonctionne pas comme prévu!
J'utilise vlc dans un Panel (Contrôle) puis place une étiquette au-dessus du contrôle vlc. Je souhaite que l'arrière-plan de l'étiquette soit transparent. J'ai utilisé le code ci-dessousdessiner un contrôle transparent (texte) sur la vidéo de superposition (Winform VLC)

label1.Parent = vlcControl1; 
    label1.backColor = Color.Transparent; 

Le problème est que cette étiquette s'affiche jusqu'à ce que vlc ne joue aucun média.
dès que je lis un fichier multimédia, l'étiquette est masquée.
J'ai aussi essayé

label1.bringToFront(); 
    label1.Visible=true; 

si j'arrête vlc de jouer un fichier vidéo vlcControl1.Stop(); étiquette sera alors visible.

+0

La superposition de vidéo peut prendre une fenêtre supplémentaire. – TaW

+0

@Voici une solution de contournement pour superposer du texte sur une vidéo? –

+0

Il existe plusieurs façons d'utiliser un contrôle VLC dans un projet C#. Qu'est-ce que vous utilisez? –

Répondre

3

La version Windows Forms a le problème de l'espace aérien, et je ne connais pas les solutions de contournement disponibles pour le résoudre.

Pour la version WPF, cela est un problème connu de la dernière version de VlcDotNet: Wpf VlcControl seems to ignore ZIndex et VlcControl is always on the top of my window Il arrive depuis le contrôle WPF VLC est un HwndHost affichant le contrôle Windows Forms.

Les alternatives connues devraient être, en utilisant WPF et:

  1. Utilisez l'ancienne version de VlcDotNet (version 1.2.0.0 n'a pas le problème de l'espace aérien )
  2. Utilisez un contrôle alternatif avec un pur WPF mise en œuvre, par exemple Meta.Vlc
  3. Mettre en œuvre une solution de contournement pour la question de l'espace aérien, par exemple AirspacePopup