我有一个像这样定义的Popup:
<Popup
Name="myPopup"
StaysOpen="True"
Placement="Bottom"
PlacementRectangle="0,20,0,20"
PlacementTarget="{Binding ElementName=myPopupAnchor}">
<TextBlock ... />
</Popup>
Run Code Online (Sandbox Code Playgroud)
我已经myPopupAnchor为事件MouseEnter和元素添加了事件处理程序MouseLeave.两个事件处理程序切换弹出窗口的可见性.
我的问题是myPopupAnchor的位置只在首次显示弹出窗口时被读取,或者被隐藏然后再次显示.如果锚移动,则弹出窗口不会移动.
我正在寻找解决这个问题的方法,我想要一个动人的Popup.我可以通知WPF PlacementTarget绑定已更改并应再次读取吗?我可以手动设置弹出窗口的位置吗?
目前,我有一个非常粗略的解决方法,涉及关闭然后再次打开弹出窗口,这会导致一些重新绘制问题.