Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.