1

我使用组件 DevExpress DockLayoutManager

根据他们网站上的文档

http://documentation.devexpress.com/#WPF/DevExpressXpfDockingLayoutPanel_Uritopic

控件属性“返回窗口/页面的根元素”——即Grid。

示例在他们的演示应用程序中:DockingDemo.Wpf DocumentGroups.xaml

这是我的代码

DocumentGroup documentContainer = dockManager.GetItem("documentContainer") as DocumentGroup;
DocumentPanel panel = dockManager.DockController.AddDocumentPanel(documentContainer,new Uri("/WpfSample;component/MyWindows/Win1.xaml", UriKind.Relative));
panel.Caption = "SomeName";
MyWindow win = ((panel.Control as Grid).Parent as MyWindow);
win.DoInit(object Obj);

当我调用(panel.Control as Grid)时。家长 - 我得到了 DockLayoutManager 的链接。

我不是很明白。窗户去哪里?DockLayoutManager 成为 Windows Grid 的逻辑树中的父级?

请告诉我 - 如何获取 Window,将其转换为所需的类并调用其方法?

即如何使这段代码工作

MyWindow win = ((panel.Control as Grid).Parent as MyWindow);
win.DoInit(object Obj);
4

1 回答 1

1

根据文档,当 URI 引用一个 Window 时,AddDocumentPanel 方法只加载指定的 Window 内容。Window 对象本身、其资源和事件处理程序未加载,并且无法通过 LayoutPanel.Control 属性访问它们。

您可以使用 UserControl 对象而不是 Window 对象。在这种情况下,将加载 UserControl 本身,您将能够通过 LayoutPanel.Control 属性访问加载的 UserControl。

于 2014-01-22T07:16:46.057 回答