使用wpf弹出窗口时遇到问题,即:
例如:
我有一个弹出窗口,它的位置设置为底部,当我将窗口移动到一个角落时,位置更改为顶部,实际上它没有。我根据弹出的打开事件调试它。 所有我想知道我怎么知道它改变,所以我可以改变提示背景!感谢。
你可以在这里看到演示图片:
答案 0 :(得分:1)
我遇到了同样的问题。在我的情况下,弹出窗口始终在窗口(而不是页面)上。 我通过注册Window事件解决了它:LocationChanged和SizeChanged:
Window w = Window.GetWindow(this);
if (w != null)
{
w.LocationChanged += windowLocationChanged;
w.SizeChanged += windowLocationChanged;
}
要将弹出窗口与窗口(或其中的控件)重新对齐,我使用以下技巧:
if (!_popup.IsOpen)
return;
if (_popup.VerticalOffset == 0.1)
_popup.VerticalOffset = 0;
else
_popup.VerticalOffset = 0.1;
设置VerticalOffset会触发弹出窗口的重新对齐,而小值会使其保持在像素边界内。