Übersicht über Popups
Das Popup-Steuerelement bietet eine Möglichkeit, Inhalt in einem separaten Fenster anzuzeigen, das relativ zu einer festgelegten Element- oder Bildschirmkoordinate über das aktuelle Anwendungsfenster gleitet. In diesem Thema wird das Popup-Steuerelement vorgestellt und Sie erhalten Informationen über seine Verwendung.
Was ist ein Popup?
Ein Popup-Steuerelement zeigt Inhalt in einem separaten Fenster relativ zu einem Element oder einem Punkt auf dem Bildschirm an. Wenn Popup festgelegt ist, ist die IsOpen-Eigenschaft auf true
festgelegt.
Hinweis
Ein Popup wird nicht automatisch geöffnet, wenn der Mauszeiger über sein übergeordnetes Objekt bewegt wird. Wenn sie automatisch Popup öffnen möchten, verwenden Sie die ToolTip- oder die ToolTipService-Klasse. Weitere Informationen finden Sie unter Übersicht über die QuickInfo.
Erstellen eines Popups
Im folgenden Beispiel wird das Definieren eines Popup-Steuerelement gezeigt, das einem ToggleButton-Steuerelement untergeordnet ist. Da ein ToggleButton
untergeordnetes Element nur ein untergeordnetes Element aufweisen kann, platziert dieses Beispiel den Text für die ToggleButton
- und Popup
-Steuerelemente in einem StackPanel. Der Inhalt der Popup
-Datei wird in einem separaten Fenster angezeigt, das in der Nähe des zugehörigen ToggleButton
-Steuerelements über das Anwendungsfenster schwebt.
<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>
Steuerelemente, die ein Popup implementieren
Sie können Popup-Steuerelemente in andere Steuerelemente einbauen. Die folgenden Steuerelemente implementieren die Popup-Steuerelement für bestimmte Verwendungen:
ToolTip. Wenn Sie eine QuickInfo für ein Element erstellen möchten, verwenden Sie die Klassen ToolTip undToolTipService. Weitere Informationen finden Sie unter Übersicht über die QuickInfo.
ContextMenu. Wenn Sie ein Kontextmenü für ein Element erstellen möchten, verwenden Sie das ContextMenu-Steuerelement. Weitere Informationen finden Sie unter Übersicht über ContextMenu.
ComboBox. Wenn Sie ein Auswahlsteuerelement mit einem Dropdownlistenfeld erstellen möchten, das angezeigt oder ausgeblendet werden kann, verwenden Sie das ComboBox-Steuerelement.
Expander. Wenn Sie ein Steuerelement erstellen möchten, das einen Header mit einem reduzierbaren Bereich anzeigt, der Inhalt anzeigt, verwenden Sie das Expander-Steuerelement. Weitere Informationen finden Sie unter Übersicht über Expander-Steuerelemente.
Popup-Verhalten und -Darstellung
Das Popup-Steuerelement bietet Funktionen, die es Ihnen ermöglichen, das Verhalten und die Darstellung anzupassen. Beispielsweise können Sie Folgendes festlegen: Öffnungs- und Schließverhalten, Animation, Deckkraft und Bitmapeffekte sowie Popup-Größe und -Position.
Öffnungs- und Schließverhalten
Ein Popup-Steuerelement zeigt seinen Inhalt an, wenn die IsOpen-Eigenschaft auf true
gesetzt ist. Popup bleibt standardmäßig so lange geöffnet, bis die IsOpen-Eigenschaft auf false
gesetzt wird. Für einige Aktionen können Sie das Standardverhalten ändern, indem Sie die StaysOpen-Eigenschaft auf false
festlegen. Wenn Sie diese Eigenschaft auf false
setzen, wird das Popup-Inhaltsfenster mit der Maus erfasst. Der Popup verliert die Mauserfassung und das Fenster schließt sich, wenn ein Mausereignis außerhalb des Popup-Fensters auftritt.
Die Opened- und Closed-Ereignisse werden ausgelöst, wenn das Popup-Inhaltsfenster geöffnet oder geschlossen wird.
Animation
Das Popup-Steuerelement verfügt über integrierte Unterstützung für die Animationen, die typischerweise mit Verhalten wie dem Einblenden verknüpft sind. Sie können diese Animationen einschalten, indem Sie die PopupAnimation-Eigenschaft auf einen PopupAnimation-Aufzählungswert setzen. Damit die Popup-Animationen korrekt funktionieren, müssen Sie die AllowsTransparency-Eigenschaft auf true
setzen.
Sie können auch Animationen wie Storyboard auf das Popup-Steuerelement anwenden.
Deckkraft und Bitmapeffekte
Die Opacity-Eigenschaft für ein Popup-Steuerelement hat keine Auswirkungen auf seinen Inhalt. Standardmäßig ist das Popup-Inhaltsfenster undurchsichtig. Zum Erstellen einer transparenten Popup, legen Sie die AllowsTransparency-Eigenschaft auf true
fest.
Der Inhalt eines Popup erbt keine Bitmap-Effekte, wie z. B. DropShadowBitmapEffect, die Sie direkt auf dem Popup-Steuerelement oder auf einem anderen Element im übergeordneten Fenster einstellen. Damit Bitmapeffekte auf dem Inhalt eines Popup-Elements erscheinen, müssen Sie den Bitmapeffekt direkt auf dessen Inhalt festlegen. Wenn beispielsweise ein untergeordnetes Element von PopupStackPanel ist, legen Sie den Bitmapeffekt auf den StackPanel fest.
Popup-Größe
Standardmäßig wird die Größe von Popup automatisch an seinen Inhalt angepasst. Bei der automatischen Anpassung werden einige Bitmapeffekte möglicherweise ausgeblendet, da die Standardgröße des Bildschirmbereichs, der für den Popup-Inhalt definiert ist, nicht ausreichend Platz zum Anzeigen der Bitmapeffekte bietet.
Der Popup-Inhalt kann auch verdeckt werden, wenn Sie ein RenderTransform auf den Inhalt setzen. In diesem Szenario können einige Inhalte ausgeblendet werden, wenn der Inhalt der transformierten Popup über den Bereich des Popup-Originals hinausgeht. Wenn für einen Bitmapeffekt oder eine Transformation mehr Platz benötigt wird, können Sie einen Rand um den Popup-Inhalt definieren, um dem Steuerelement mehr Platz zu bieten.
Definieren der Popup-Position
Sie können ein Popup positionieren, indem Sie die PlacementTarget-, PlacementRectangle-, Placement-, HorizontalOffset- und VerticalOffsetProperty-Eigenschaften festlegen. Weitere Informationen finden Sie unter Verhalten beim Platzieren von Popups. Wenn das Popup auf dem Bildschirm angezeigt wird, positioniert es sich nicht selbst neu, wenn sich sein übergeordnetes Element neu positioniert.
Anpassen der Popupplatzierung
Sie können die Platzierung eines Popup-Steuerelements anpassen, indem Sie eine Reihe von Koordinaten angeben, die relativ zu der PlacementTarget sind, an der das Popup erscheinen soll.
Um die Platzierung anzupassen, legen Sie die Placement-Eigenschaft auf Custom fest. Definieren Sie anschließend einen CustomPopupPlacementCallback-Delegaten, der eine Reihe möglicher Platzierungspunkte und primärer Achsen (in der bevorzugten Reihenfolge) für das Popup-Steuerelement zurückgibt. Der Punkt, an dem der größte Teil des Popup-Steuerelements anzeigt wird, wird ausgewählt. Ein Beispiel finden Sie unter Angeben einer benutzerdefinierten Popupposition.
Popup und visuelle Struktur
Ein Popup-Steuerelement hat keinen eigenen visuellen Baum; stattdessen gibt es eine Größe von 0 (Null) zurück, wenn die MeasureOverride-Methode für Popup aufgerufen wird. Wenn Sie jedoch die IsOpen-Eigenschaft von Popup auf true
setzen, wird ein neues Fenster mit einem eigenen visuellen Baum erstellt. Der Child, der den Inhalt dieser neuen Popup enthält. Die Breite und Höhe des neuen Fensters darf nicht größer als 75 Prozent der Breite oder Höhe des Bildschirms sein.
Das Popup-Steuerelement behält einen Verweis auf seinen Child-Inhalt als logisches untergeordnetes Element bei. Wenn das neue Fenster erstellt wird, wird der Inhalt von Popup ein visuelles untergeordnetes Element des Fensters und bleibt das logische untergeordnete Element von Popup. Umgekehrt bleibt Popup das logische übergeordnete Element des Child-Inhalts.
Weitere Informationen
.NET Desktop feedback