2009-12-02 3 views
4
Popup popUpControl = new Popup(); 

popUpControl.PlacementTarget = this; 
popUpControl.StaysOpen = true; 
popUpControl.Child = new MyUserControl(); /// my user control 
popUpControl.Opacity = 0.5; // this code has no effect in the appearance of the popup 
popUpControl.IsOpen = true; 

Comment faire?L'opacité ne s'applique pas au contrôle contextuel WPF

Répondre

6

Vous devez définir l'opacité sur le contenu contextuel.
Donc, pour votre bouton ont

popUp.Child = new Button() 
{ 
    Width = 300, 
    Height = 50, 
    Background = Brushes.Gray, 
    Opacity = 0.5 // set opacity here 
}; 
+0

Merci Jay .. Cela a fonctionné :) – Subindev

10

Vous devez activer le mode contextuel pour avoir de la transparence. Ajouter la ligne de code suivante.

popUpControl.AllowsTransparency=true; 
+0

Salut Sasikumar, Thanx for ur réponse .. i hv essayé, mais ne fonctionne toujours pas .. s'il vous plaît mettre ce code suivant dans une application de test de WPF et de voir, Popup POUP = nouveau Popup(); poUp.PlacementTarget = this; poUp.Placement = System.Windows.Controls.Primitives.PlacementMode.MousePoint; poUp.StaysOpen = true; poUp.PopupAnimation = PopupAnimation.Scroll; poUp.VerticalOffset = 52; poUp.HorizontalOffset = 5; poUp.Child = new Bouton() {Largeur = 300, Hauteur = 50, Arrière-plan = Brosses.Gris}; poUp.AllowsTransparency = true; – Subindev

+0

Jay a raison. Vous devez spécifier l'opacité sur le contenu. Essayez d'ajouter une grille en tant qu'enfant pour faire apparaître et ajouter tous vos contrôles dans cette grille. Configurez Opacity of Grid pour le refléter dans ses enfants. –

+0

Oui, il a travaillé .. – Subindev

Questions connexes