Partager via


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 ToggleButtonPopup 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 :

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é falsesur , 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é truesur .

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.

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.

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 truePopup , 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