我有一个窗口和一个弹出窗口,当在列表视图中双击项目时会弹出该窗口。
它居中于主窗口并且看起来漂浮在那里非常好看。
问题是,当用户移动主窗口或选择其他程序时,弹出窗口就会浮在其他东西的上面。
我希望有类似于弹出窗口的东西,即它会浮在窗口中的其他元素上方,但随着主窗口的移动(保持居中)而移动,并且不会浮在其他程序的上方。
我能让弹出窗口像这样运作吗?还是有更好的方法来实现?
在这种情况下,可能一个 装饰器 比弹出窗口更适合您的需求。装饰器也可以浮动在您的窗口上方。它们有一些不同之处,主要是装饰器绑定到 UIElement(包括窗口)。
我还没有找到一种方法来阻止 WPF 中的弹出窗口这样做。
作为替代方案,您可以创建一个类似于弹出窗口的 UserControl。
通常情况下,我会将应用程序的内容部分与弹出窗口一起托管在 Canvas 控件中,当 IsPopupOpen 更改为 True 时,我将弹出窗口的 Visibility 设置为 Visible。
IsPopupOpen
的属性。然后,我会设置一个事件监听器来监听 ShowPopupEvent
事件,并在该事件被触发时显示弹出窗口。您还可以将弹出窗口内容作为 ShowPopupEvent 参数之一传递。 - Rachel
Window.GetWindow(Me).Owner = Application.Current.MainWindow
,我会收到一个错误,说“无法将Owner属性设置为自身。”所以我不确定如何正确地做这件事。 - AndyD273