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