У меня есть всплывающее окно, определенное так:
<Popup
Name="myPopup"
StaysOpen="True"
Placement="Bottom"
PlacementRectangle="0,20,0,20"
PlacementTarget="{Binding ElementName=myPopupAnchor}">
<TextBlock ... />
</Popup>
Я добавил обработчики событий в элемент myPopupAnchor
для событий MouseEnter
и MouseLeave
. Два обработчика событий переключают видимость всплывающего окна.
Моя проблема в том, что позиция myPopupAnchor читается только тогда, когда всплывающее окно сначала отображается, или скрыто, а затем отображается снова. Если якорь перемещается, всплывающее окно не перемещается.
Я ищу способы обойти это, я хочу всплывающее окно. Могу ли я уведомить WPF, что привязка PlacementTarget
изменилась и должна быть прочитана снова? Можно ли вручную установить позицию всплывающего окна?
В настоящее время у меня есть очень грубый обходной путь, который включает закрытие, а затем повторное открытие всплывающего окна, что вызывает некоторые проблемы с перекрашиванием.