【发布时间】:2018-08-29 16:32:17
【问题描述】:
我在使用 Telerik 控件构建的 WPF 应用程序中有几个 RadPanes 和 RadPanGroups。
我想显示一个自定义窗口(一种消息框),它位于特定 RadPane 的中心,而不是整个窗口或父窗口或屏幕的中心。
我想根据激活的RadPane
设置自定义窗口的Top和Left【问题讨论】:
标签: c# wpf telerik raddocking
我在使用 Telerik 控件构建的 WPF 应用程序中有几个 RadPanes 和 RadPanGroups。
我想显示一个自定义窗口(一种消息框),它位于特定 RadPane 的中心,而不是整个窗口或父窗口或屏幕的中心。
我想根据激活的RadPane
设置自定义窗口的Top和Left【问题讨论】:
标签: c# wpf telerik raddocking
这可能是一个小解决方法,但this topic 可能会对您有所帮助。这个想法是,在触发事件的同时捕获鼠标位置。你没有说是什么导致你的窗口打开,我认为它是 MouseDoubleClickEvent,所以这可能适合你。
另一种选择(尚未尝试过)是在您的事件中捕获 sender 参数。触发事件后,您将拥有 sender(在您的情况下为对象 RadPane),它返回组件的 VisualOffset(具有 4 个坐标)。然后你可以手动设置你的窗口位置如下:
Window window = new Window();
window.Left = offsetTop - x;
window.Top = offsetLeft - y;
不幸的是,WindowStartupLocation 属性只允许您将其设置为 CenterOwner(父窗口的中心)、CenterScreen 和 Manual。好吧,Manual 听起来确实不错,但它仍然需要您知道发送者(父母)的确切位置。
【讨论】: