Как я могу переместить всплывающее окно WPF при перемещении его элемента привязки?

У меня есть всплывающее окно, определенное следующим образом:

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

Я добавил обработчики событий вmyPopupAnchor элемент для событийMouseEnter а такжеMouseLeave, Два обработчика событий переключают видимость всплывающего окна.

Моя проблема в том, что позиция myPopupAnchor читается только тогда, когда всплывающее окно сначала отображается, или скрывается, а затем отображается снова. Если якорь перемещается, всплывающее окно не перемещается.

Я ищу способы обойти это, я хочу всплывающее окно. Могу ли я сообщить WPF, чтоPlacementTarget привязка изменилась и должна быть прочитана снова? Могу ли я вручную установить позицию всплывающего окна?

В настоящее время у меня есть очень грубый обходной путь, который включает закрытие, а затем повторное открытие всплывающего окна, что вызывает некоторые проблемы с перекрашиванием.

Ответы на вопрос(8)

Ваш ответ на вопрос