Wie kann ich ein WPF-Popup verschieben, wenn sich sein Ankerelement bewegt?

Ich habe ein Popup wie folgt definiert:

<Popup
    Name="myPopup"
    StaysOpen="True"
    Placement="Bottom"
    PlacementRectangle="0,20,0,20"
    PlacementTarget="{Binding ElementName=myPopupAnchor}">
    <TextBlock ... />
</Popup>

Ich habe Eventhandler zu den hinzugefügtmyPopupAnchor Element für die EreignisseMouseEnter undMouseLeave. Die beiden Event-Handler schalten die Sichtbarkeit des Popups um.

Mein Problem ist, dass die Position von myPopupAnchor nur gelesen wird, wenn das Popup zuerst angezeigt oder ausgeblendet und dann wieder angezeigt wird. Wenn sich der Anker bewegt, wird das Popup nicht angezeigt.

Ich suche nach Möglichkeiten, dies zu umgehen. Ich möchte ein bewegliches Popup. Kann ich WPF mitteilen, dass derPlacementTarget Bindung hat sich geändert und sollte nochmal gelesen werden? Kann ich die Position des Popups manuell festlegen?

Derzeit habe ich eine sehr grobe Problemumgehung, bei der das Popup geschlossen und dann wieder geöffnet wird, was zu Problemen beim Neulackieren führt.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage