我正在使用 AvalonDock 2.0
我觉得它应该是非常基本的,但文档并没有说明什么,我已经玩了 2 个小时试图弄清楚。所以,如果这太简单了,我很抱歉。
我想要的正是标题所说的。该文档提到了如何制作底部面板,但只有一个自动隐藏的面板,这不是我想要的。
我试图在代码隐藏中切换它的自动隐藏,但高度没有受到影响,所以每次应用程序启动时,用户都必须向上拖动它才能看到面板的内容。
我正在使用 AvalonDock 2.0
我觉得它应该是非常基本的,但文档并没有说明什么,我已经玩了 2 个小时试图弄清楚。所以,如果这太简单了,我很抱歉。
我想要的正是标题所说的。该文档提到了如何制作底部面板,但只有一个自动隐藏的面板,这不是我想要的。
我试图在代码隐藏中切换它的自动隐藏,但高度没有受到影响,所以每次应用程序启动时,用户都必须向上拖动它才能看到面板的内容。
有点hacky,但这对我有用:
<xcad:DockingManager x:Name="DockingManager" Grid.Row="1" DocumentsSource="{Binding Documents}" Loaded="DockingManager_OnLoaded">
<xcad:LayoutRoot>
<xcad:LayoutPanel Orientation="Horizontal">
<xcad:LayoutDocumentPane></xcad:LayoutDocumentPane>
<xcad:LayoutAnchorablePane DockWidth="Auto" SelectedContentIndex="0">
<xcad:LayoutAnchorable Title="Right">
<Label>Right</Label>
</xcad:LayoutAnchorable>
</xcad:LayoutAnchorablePane>
</xcad:LayoutPanel>
<xcad:LayoutRoot.BottomSide>
<xcad:LayoutAnchorSide>
<xcad:LayoutAnchorGroup>
<xcad:LayoutAnchorable x:Name="OutputAnchorable" Title="Output">
<Label>Bottom</Label>
</xcad:LayoutAnchorable>
</xcad:LayoutAnchorGroup>
</xcad:LayoutAnchorSide>
</xcad:LayoutRoot.BottomSide>
</xcad:LayoutRoot>
</xcad:DockingManager>
然后在后面的代码中:
private void DockingManager_OnLoaded(object sender, RoutedEventArgs e)
{
OutputAnchorable.ToggleAutoHide();
// You might want to do this to get a reasonable height
var root = (LayoutAnchorablePane)OutputAnchorable.Parent;
root.DockHeight = new GridLength(100);
}
你需要这样的东西
<xcad:LayoutPanel Orientation="Vertical">
<xcad:LayoutPanel Orientation="Horizontal" >
</xcad:LayoutPanel>
</xcad:LayoutPanel>
第二个布局将创建所有的混合面板,第一个将以垂直方式创建顶部或底部