Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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’une fenêtre contextuelle ?
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 que Popup s'ouvre automatiquement, utilisez la classe ToolTip ou ToolTipService. Pour plus d’informations, consultez Présentation des info-bulles.
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
ne peut avoir qu’un seul élément enfant, cet exemple place le texte des contrôles ToggleButton
et Popup
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 une fenêtre contextuelle
Vous pouvez intégrer des contrôles Popup 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 ToolTip et ToolTipService. Pour plus d’informations, consultez Présentation des info-bulles.
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 du expandeur.
Comportement de fenêtre contextuelle et apparence
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.
Ouvrir et fermer le comportement
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 la propriété à false
, la fenêtre de contenu Popup a la capture de souris. Le Popup perd la capture de la souris et la fenêtre se ferme lorsqu’un événement de souris se produit en dehors de la fenêtre Popup.
Les événements Opened et Closed sont déclenchés lorsque la fenêtre de contenu Popup est ouverte ou fermée.
Animation
Le Popup contrôle intègre la prise en charge des animations généralement associées à des comportements tels que le fondu en ouverture et le glissement. Vous pouvez activer ces animations en définissant la PopupAnimation propriété sur une PopupAnimation valeur d’énumération. Pour que les animations Popup fonctionnent correctement, vous devez définir la propriété AllowsTransparency sur true
.
Vous pouvez également appliquer des animations comme Storyboard au Popup contrôle.
Opacité et effets 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 n’hérite pas des effets bitmap, tels que DropShadowBitmapEffect, que vous définissez directement sur le contrôle Popup 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.
Taille de fenêtre pop-up
Par défaut, un Popup est automatiquement ajusté selon 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 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 de la fenêtre popup
Vous pouvez positionner une fenêtre contextuelle en définissant les propriétés PlacementTarget, PlacementRectangle, Placement, HorizontalOffset, et VerticalOffsetProperty. Pour plus d’informations, consultez Comportement de placement de fenêtre contextuelle. Lorsqu’il est affiché Popup à l’écran, il ne se repositionne pas si son parent est repositionné.
Personnalisation du placement de fenêtres contextuelles
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 CustomPopupPlacementCallback délégué qui retourne un ensemble de points de placement et d’axes principaux possibles (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écifiez une fenêtre contextuelle personnalisée.
Fenêtre contextuelle et arborescence visuelle
Un Popup contrôle n'a pas sa propre arborescence visuelle ; il renvoie une taille de 0 (zéro) lorsque la méthode MeasureOverride de Popup est appelée. Toutefois, lorsque vous définissez la propriété IsOpen sur 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 être supérieures à 75 % de la largeur ou 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
- Popup
- PopupPrimaryAxis
- PlacementMode
- CustomPopupPlacement
- CustomPopupPlacementCallback
- ToolTip
- ToolTipService
- Sujets de type "comment faire"
- Sujets de type "comment faire"
.NET Desktop feedback