Freigeben über


Gewusst wie: Angeben einer benutzerdefinierten Popup-Position

In diesem Beispiel wird veranschaulicht, wie eine benutzerdefinierte Position für ein Popup-Steuerelement angegeben wird, wenn die Placement-Eigenschaft auf Custom festgelegt ist.

Beispiel

Wenn die Placement-Eigenschaft auf Custom festgelegt ist, wird durch Popup eine definierte Instanz des CustomPopupPlacementCallback-Delegats aufgerufen. Dieses Delegat gibt einen ein Satz möglicher Punkte relativ zur oberen linken Ecke des Zielbereichs und zur oberen linke Ecke des Popup-Steuerelements zurück. Die Popup-Platzierung wird am Punkt mit der besten Sichtbarkeit ausgeführt.

Im folgenden Beispiel wird veranschaulicht, wie die Position eines Popup-Steuerelements durch Festlegen der Placement-Eigenschaft auf Custom definiert wird. Darüber hinaus wird das Erstellen und Zuweisen eines CustomPopupPlacementCallback-Delegats zum Positionieren des Popup-Steuerelements veranschaulicht. Der Rückrufdelegat gibt zwei CustomPopupPlacement-Objekte zurück. Wenn das Popup-Steuerelement an der ersten Position durch den Bildschirmrand verdeckt ist, wird das Popup-Steuerelement an der zweiten Position platziert.

 <Popup Name="popup1"  
        PlacementTarget ="{Binding ElementName=myButton}" 
        Placement="Custom">
  <TextBlock Height="60" Width="200" 
             Background="LightGray"
             TextWrapping="Wrap">Popup positioned by using
  CustomPopupPlacement callback delegate</TextBlock>
</Popup>
        Public Function placePopup(ByVal popupSize As Size, ByVal targetSize As Size, ByVal offset As Point) As CustomPopupPlacement()
            Dim placement1 As New CustomPopupPlacement(New Point(-50, 100), PopupPrimaryAxis.Vertical)

            Dim placement2 As New CustomPopupPlacement(New Point(10, 20), PopupPrimaryAxis.Horizontal)

            Dim ttplaces() As CustomPopupPlacement = { placement1, placement2 }
            Return ttplaces
        End Function
public CustomPopupPlacement[] placePopup(Size popupSize,
                                           Size targetSize,
                                           Point offset)
{
    CustomPopupPlacement placement1 =
       new CustomPopupPlacement(new Point(-50, 100), PopupPrimaryAxis.Vertical);

    CustomPopupPlacement placement2 =
        new CustomPopupPlacement(new Point(10, 20), PopupPrimaryAxis.Horizontal);

    CustomPopupPlacement[] ttplaces =
            new CustomPopupPlacement[] { placement1, placement2 };
    return ttplaces;
}
            popup1.CustomPopupPlacementCallback = New CustomPopupPlacementCallback(AddressOf placePopup)
popup1.CustomPopupPlacementCallback =
    new CustomPopupPlacementCallback(placePopup);

Das vollständige Beispiel finden Sie unter Beispiel zur Platzierung von Popups.

Siehe auch

Referenz

Popup

Konzepte

Übersicht über Popups

Weitere Ressourcen

Gewusst-wie-Themen zu Popups