2012-01-11 80 views
4

有人可以为我提供一个AvalonDock XAML代码片段,它在运行时用浮动窗口打开应用程序,而不是始终停靠在停靠窗格内?我已经看到了编程的方式,但我认为必须有一种方法来在XAML中指定它。谢谢...在AvalonDock中用于浮动窗口的XAML

回答

2

我知道这是有点晚了,但我希望它会帮助别人在未来同样的问题...

要创建一个浮动的文件,添加一个LayoutDocumentFloatingWindow作为一个孩子的LayoutDocumentFloatingWindow,然后添加你的LayoutDocument作为LayoutDocumentFloatingWindow的孩子,如下:

<xcad:DockingManager> 
    <xcad:LayoutRoot> 
     <xcad:LayoutRoot.FloatingWindows> 
      <xcad:LayoutDocumentFloatingWindow> 
       <xcad:LayoutDocument Title="My Document"> 
        <!--Add document content here--> 
       </xcad:LayoutDocument> 
      </xcad:LayoutDocumentFloatingWindow> 
     </xcad:LayoutRoot.FloatingWindows> 
    </xcad:LayoutRoot> 
    </xcad:DockingManager> 

同样,你可以添加anchorables像这样:

<xcad:DockingManager> 
<xcad:LayoutRoot> 
    <xcad:LayoutRoot.FloatingWindows> 
     <xcad:LayoutAnchorableFloatingWindow> 
      <xcad:LayoutAnchorablePaneGroup> 
       <xcad:LayoutAnchorablePane> 
       <xcad:LayoutAnchorable Title="My anchorable"> 
        <!--Add anchorable content here--> 
       </xcad:LayoutAnchorable> 
       </xcad:LayoutAnchorablePane> 
      </xcad:LayoutAnchorablePaneGroup> 
     </xcad:LayoutAnchorableFloatingWindow> 
    </xcad:LayoutRoot.FloatingWindows> 
</xcad:LayoutRoot> 

注意与LayoutDocuments,为anchorables你需要添加一个组窗格中,而不仅仅是一个单一的LayoutAnchorable,因为浮动anchorables被设计成能够被分组在一个窗口中,但LayoutDocuments不是。

至于更一般的指导,如何建立一个DockingManager varioius布局元素的例子可以在这里找到:https://xceed.com/wp-content/documentation/xceed-toolkit-plus-for-wpf/AvalonDock.html

+0

谢谢,这确实工作!我还会提到,一旦实现了布局序列化,那么在我的问题中声明式布局变得不那么重要,因为可以以任何需要的状态保存布局,并且当用户不提供时,可以将该状态设置为默认状态他自己的布局文件。 – 2016-10-18 07:24:37