【发布时间】:2016-04-13 14:44:29
【问题描述】:
我正在尝试使用 avalon dock 创建一个布局,看起来像这样:
在左侧,用户应该选择红色框中显示的内容。如果将中间的红色框声明为文档窗格,并将内容显示为选项卡,则可以轻松实现这种布局。 但是,在这种情况下不需要使用选项卡,因为只有一个内容,所以我想将红色框显示为可锚定而不是文档。 所以,基本上,我想要一个完全不包含文档窗格的布局。 到目前为止,这是我的代码:
<ad:DockingManager
LayoutUpdateStrategy="{StaticResource dockingLayoutStrategy}"
AnchorablesSource="{Binding Path=Anchorables}"
ActiveContent="{Binding Path=ActiveContent, Mode=TwoWay}"
>
<ad:DockingManager.LayoutItemContainerStyleSelector>
<local:DockingPaneStyleSelector>
<local:DockingPaneStyleSelector.AnchorableStyle>
<Style TargetType="{x:Type adc:LayoutAnchorableItem}">
<!-- a bunch of properties-->
</Style>
</local:DockingPaneStyleSelector.AnchorableStyle>
<local:DockingPaneStyleSelector.PaneStyle>
<!-- a bunch of properties-->
</local:DockingPaneStyleSelector.PaneStyle>
</local:DockingPaneStyleSelector>
</ad:DockingManager.LayoutItemContainerStyleSelector>
<adl:LayoutRoot>
<adl:LayoutPanel Orientation="Horizontal">
<adl:LayoutAnchorablePane Name="ContentSelectionPane" DockWidth="100"/>
<adl:LayoutPanel Orientation="Vertical" DockWidth="*" IsMaximized="True">
<adl:LayoutPanel Orientation="Horizontal">
<adl:LayoutAnchorablePane Name="MainPane" IsMaximized="True" />
<adl:LayoutAnchorablePane Name="PropertyPane" DockWidth="300"/>
</adl:LayoutPanel>
<adl:LayoutAnchorablePane Name="StuffPane" DockHeight="150"/>
</adl:LayoutPanel>
</adl:LayoutPanel>
</adl:LayoutRoot>
我遇到的第一个问题是,当加载左侧窗格时,它会占用所有可用空间,并且永远不允许显示右侧。如果我注释掉左侧窗格,则会显示窗口的右侧。
第二个问题是窗格现在确实具有我声明的大小,但总是占用可用大小的一半。例如。如果我有:
<adl:LayoutRoot>
<adl:LayoutPanel Orientation="Horizontal">
<adl:LayoutAnchorablePane Name="ContentSelectionPane" DockWidth="100"/>
<adl:LayoutAnchorablePane Name="{x:Static si:Panes.DocumentPane}" DockWidth="*" IsMaximized="True" />
</adl:LayoutPanel>
</adl:LayoutRoot>
两个窗格正好占可用位置的一半。
关于如何实现不显示选项卡但可访问的“DocumentPane”大小行为的任何想法?
【问题讨论】:
-
过去 2 小时我也在寻找这个答案...
-
有什么想法吗?到目前为止,您尝试过什么?
标签: wpf avalondock