Vue d’ensemble de Popup
Le Popup contrôle permet d’afficher du contenu dans une fenêtre distincte qui flotte sur la fenêtre d’application actuelle par rapport à un élément ou une coordonnée d’écran désigné. Cette rubrique présente le Popup contrôle et fournit des informations sur son utilisation.
Qu’est-ce qu’un contrôle Popup ?
Un Popup contrôle affiche du contenu dans une fenêtre distincte par rapport à un élément ou un point à l’écran. Lorsque la Popup valeur est visible, la IsOpen propriété est définie sur true
.
Remarque
A Popup ne s’ouvre pas automatiquement lorsque le pointeur de la souris se déplace sur son objet parent. Si vous souhaitez Popup ouvrir automatiquement, utilisez la ou ToolTipService la ToolTip classe. Pour plus d’informations, consultez Vue d’ensemble de l’info-bulle.
Création d'une fenêtre contextuelle
L’exemple suivant montre comment définir un Popup contrôle qui est l’élément enfant d’un ToggleButton contrôle. Étant donné qu’un ToggleButton
seul élément enfant ne peut avoir qu’un seul élément enfant, cet exemple place le texte pour les ToggleButton
Popup
contrôles dans un StackPanel. Le contenu du fichier Popup
s’affiche dans une fenêtre distincte qui flotte sur la fenêtre d’application près du contrôle associé ToggleButton
.
<ToggleButton x:Name="TogglePopupButton" Height="30" Width="150" HorizontalAlignment="Left">
<StackPanel>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">
<Run Text="Is button toggled? " />
<Run Text="{Binding IsChecked, ElementName=TogglePopupButton}" />
</TextBlock>
<Popup Name="myPopup" IsOpen="{Binding IsChecked, ElementName=TogglePopupButton}">
<Border BorderThickness="1">
<TextBlock Name="myPopupText" Background="LightBlue" Foreground="Blue" Padding="30">
Popup Text
</TextBlock>
</Border>
</Popup>
</StackPanel>
</ToggleButton>
Contrôles qui implémentent un contrôle Popup
Vous pouvez générer des Popup contrôles dans d’autres contrôles. Les contrôles suivants implémentent le Popup contrôle pour des utilisations spécifiques :
ToolTip. Si vous souhaitez créer une info-bulle pour un élément, utilisez les classes et ToolTipService les ToolTip classes. Pour plus d’informations, consultez Vue d’ensemble de l’info-bulle.
ContextMenu. Si vous souhaitez créer un menu contextuel pour un élément, utilisez le ContextMenu contrôle. Pour plus d’informations, consultez Vue d’ensemble de ContextMenu.
ComboBox. Si vous souhaitez créer un contrôle de sélection qui a une zone de liste déroulante qui peut être affichée ou masquée, utilisez le ComboBox contrôle.
Expander. Si vous souhaitez créer un contrôle qui affiche un en-tête avec une zone réductible qui affiche du contenu, utilisez le Expander contrôle. Pour plus d’informations, consultez Vue d’ensemble d’Expander.
Comportement et apparence d’un contrôle Popup
Le Popup contrôle fournit des fonctionnalités qui vous permettent de personnaliser son comportement et son apparence. Par exemple, vous pouvez définir un comportement ouvert et fermé, des effets d’animation, d’opacité et de bitmap, ainsi Popup que la taille et la position.
Comportement à l’ouverture et à la fermeture
Un Popup contrôle affiche son contenu lorsque la IsOpen propriété est définie sur true
. Par défaut, Popup reste ouvert jusqu’à ce que la IsOpen propriété soit définie sur false
. Toutefois, vous pouvez modifier le comportement par défaut en définissant la StaysOpen propriété sur false
. Lorsque vous définissez cette propriété false
sur , la Popup fenêtre de contenu a la capture de la souris. La Popup capture de la souris perd et la fenêtre se ferme lorsqu’un événement de souris se produit en dehors de la Popup fenêtre.
Les Opened événements et Closed les événements sont déclenchés lorsque la fenêtre de Popup contenu est ouverte ou fermée.
Animation
Le Popup contrôle prend en charge les animations qui sont généralement associées à des comportements tels que la fondu en fondu et la diapositive. Vous pouvez activer ces animations en définissant la PopupAnimation propriété sur une PopupAnimation valeur d’énumération. Pour Popup que les animations fonctionnent correctement, vous devez définir la AllowsTransparency propriété true
sur .
Vous pouvez également appliquer des animations comme Storyboard au Popup contrôle.
Effets d’opacité et bitmap
La Opacity propriété d’un Popup contrôle n’a aucun effet sur son contenu. Par défaut, la fenêtre de Popup contenu est opaque. Pour créer un transparent Popup, définissez la AllowsTransparency propriété sur true
.
Le contenu d’un Popup objet n’hérite pas des effets bitmap, tels que DropShadowBitmapEffect, que vous définissez directement sur le Popup contrôle ou sur tout autre élément de la fenêtre parente. Pour que les effets bitmap apparaissent sur le contenu d’un Popup, vous devez définir l’effet bitmap directement sur son contenu. Par exemple, si l’enfant d’un Popup est un StackPanel, définissez l’effet bitmap sur le StackPanel.
Dimensionnement d’un contrôle Popup
Par défaut, une Popup taille est automatiquement dimensionnée à son contenu. Lorsque le dimensionnement automatique se produit, certains effets bitmap peuvent être masqués, car la taille par défaut de la zone d’écran définie pour le Popup contenu ne fournit pas suffisamment d’espace pour que les effets bitmap s’affichent.
Popup le contenu peut également être masqué lorsque vous définissez un RenderTransform contenu sur le contenu. Dans ce scénario, certains contenus peuvent être masqués si le contenu de la transformation Popup s’étend au-delà de la zone d’origine Popup. Si un effet bitmap ou une transformation nécessite plus d’espace, vous pouvez définir une marge autour du Popup contenu afin de fournir plus de zone pour le contrôle.
Définition de la position d’un contrôle Popup
Vous pouvez positionner une fenêtre contextuelle en définissant les propriétés et les PlacementTargetpropriétés.VerticalOffsetPropertyPlacementRectanglePlacementHorizontalOffset Pour plus d’informations, consultez Comportement de positionnement de Popup. Lorsqu’il Popup est affiché à l’écran, il ne se repositionne pas si son parent est repositionné.
Personnalisation du positionnement d’un contrôle Popup
Vous pouvez personnaliser l’emplacement d’un Popup contrôle en spécifiant un ensemble de coordonnées relatives à l’emplacement PlacementTarget où vous souhaitez Popup qu’il apparaisse.
Pour personnaliser l’emplacement, définissez la Placement propriété sur Custom. Définissez ensuite un délégué CustomPopupPlacementCallback qui retourne un ensemble de points de positionnement possibles et les axes principaux (par ordre de préférence) pour le Popup. Le point qui montre la plus grande partie du fichier Popup est automatiquement sélectionné. Pour obtenir un exemple, consultez Spécifier une position de menu contextuel personnalisée.
Contrôle Popup et arborescence d’éléments visuels
Un Popup contrôle n’a pas sa propre arborescence visuelle ; il retourne plutôt une taille de 0 (zéro) lorsque la MeasureOverride méthode est Popup appelée. Toutefois, lorsque vous définissez la IsOpen propriété sur true
Popup , une nouvelle fenêtre avec son propre arborescence visuelle est créée. La nouvelle fenêtre contient le Child contenu de Popup. La largeur et la hauteur de la nouvelle fenêtre ne peuvent pas dépasser 75 % de la largeur et de la hauteur de l’écran.
Le Popup contrôle conserve une référence à son Child contenu en tant qu’enfant logique. Lorsque la nouvelle fenêtre est créée, le contenu de Popup devient un enfant visuel de la fenêtre et reste l’enfant logique de Popup. À l’inverse, Popup reste le parent logique de son Child contenu.
Voir aussi
.NET Desktop feedback