我在使用DevExpress的LayoutSplitter和DockLayoutManger时遇到一些问题。
dxdo:DockLayoutManager>
<dxdo:DockLayoutManager.LayoutRoot>
<dxdo:LayoutGroup Orientation="Vertical" Height="*">
<dxdo:LayoutGroup Orientation="Vertical" Height="*">
<dxdo:DocumentPanel>
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<ContentControl Grid.Row="0" Content="{Binding SomeViewModel}" ContentTemplateSelector="{StaticResource templateSelector}"/>
</Grid>
</dxdo:DocumentPanel>
</dxdo:LayoutGroup>
<dxdo:LayoutGroup Height="Auto" Orientation="Vertical">
<dxdo:LayoutSplitter/>
</dxdo:LayoutGroup>
<dxdo:LayoutGroup>
<dxdo:LayoutPanel Height="Auto" AllowDock="True">
<ItemsControl ItemsSource="{Binding SomeViewModel.SomeCollection}" ItemTemplateSelector="{StaticResource templateSelector}">
</ItemsControl>
</dxdo:LayoutPanel>
</dxdo:LayoutGroup>
</dxdo:LayoutGroup>
</dxdo:DockLayoutManager.LayoutRoot>
</dxdo:DockLayoutManager>
LayoutSplitter没有上下移动。它只是保持静止。 使用DockLayoutManager,第三个嵌套的LayoutGroup,当我从中删除一个组件时,我无法将组件放回去。一个提示非常值得感谢!
答案 0 :(得分:1)
分割布局组或布局控件项需要LayoutSplitter控件。它不能与LayoutPanels或DocumentPanels一起使用。此外,不需要使用dock items的分割器,因为这些项目的大小调整是由DockLayoutManager自动提供的。您还应该将DocumentPanel用作DocumentGroup的子项,而不是将该文档直接放置到LayoutGroup.Items集合中。或者使用LayoutPanel而不是DocumentPanel。 所以,你的标记应该是这样的:
<dxdo:DockLayoutManager>
<dxdo:LayoutGroup Orientation="Vertical" >
<dxdo:DocumentGroup>
<dxdo:DocumentPanel Caption="Document">
<!-- Document content -->
</dxdo:DocumentPanel>
</dxdo:DocumentGroup>
<dxdo:LayoutGroup>
<dxdo:LayoutPanel Caption="Panel">
<!-- Panel content -->
</dxdo:LayoutPanel>
</dxdo:LayoutGroup>
</dxdo:LayoutGroup>
</dxdo:DockLayoutManager>
您可以在这些文章中阅读更多内容: