带有 AvalonDock 对接布局系统的 Wpf 应用程序
Wpf app with AvalonDock docking layout system
我正在 .net5 中创建一个小的 wpf 程序。它应该有一个标签系统和一个侧边栏。 Dirkster.AvalonDock 库 github 适合我的目的。安装版本 4.60.0。我刚刚开始了解这个图书馆。侧边栏出现了困难。 LayoutAnchorablePane 负责其输出。但是结果不是我所期望的。
我需要得到这样的东西
img1
现在有
img2
查看代码:
<Window x:Class="TestApp.Views.MainWindowView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:TestApp.ViewModels"
xmlns:cm="http://www.caliburnproject.org"
mc:Ignorable="d"
Width="800" Height="450"
Title="MainWindow">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<DockingManager x:Name="DockManager" Grid.Column="0"
DocumentsSource="{Binding Items}"
AnchorablesSource="{Binding MenuItems}"
>
<DockingManager.LayoutItemTemplate>
<DataTemplate>
<ContentControl cm:View.Model="{Binding Content}" IsTabStop="False" />
</DataTemplate>
</DockingManager.LayoutItemTemplate>
<DockingManager.LayoutItemContainerStyle>
<Style TargetType="{x:Type LayoutItem}">
<Setter Property="Title" Value="{Binding Model.DisplayName, Mode=OneWay}"/>
<Setter Property="CloseCommand" Value="{Binding Model.CloseCommand}"/>
</Style>
</DockingManager.LayoutItemContainerStyle>
<LayoutRoot>
<LayoutPanel>
<LayoutDocumentPaneGroup>
<LayoutDocumentPane />
</LayoutDocumentPaneGroup>
<LayoutAnchorablePaneGroup>
<LayoutAnchorablePane DockMinWidth="300" />
</LayoutAnchorablePaneGroup>
</LayoutPanel>
</LayoutRoot>
</DockingManager>
</Grid>
我认为视图模型代码并不重要。项目中还安装了caliburn.micro
请告诉我如何获得第一张图片中的侧边栏。
你必须安装 VS2013 主题包 (link) 然后像下面这样使用精简版:
<DockingManager.Theme>
<Vs2013LightTheme />
</DockingManager.Theme>
我正在 .net5 中创建一个小的 wpf 程序。它应该有一个标签系统和一个侧边栏。 Dirkster.AvalonDock 库 github 适合我的目的。安装版本 4.60.0。我刚刚开始了解这个图书馆。侧边栏出现了困难。 LayoutAnchorablePane 负责其输出。但是结果不是我所期望的。
我需要得到这样的东西
img1
现在有
img2
查看代码:
<Window x:Class="TestApp.Views.MainWindowView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:TestApp.ViewModels"
xmlns:cm="http://www.caliburnproject.org"
mc:Ignorable="d"
Width="800" Height="450"
Title="MainWindow">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<DockingManager x:Name="DockManager" Grid.Column="0"
DocumentsSource="{Binding Items}"
AnchorablesSource="{Binding MenuItems}"
>
<DockingManager.LayoutItemTemplate>
<DataTemplate>
<ContentControl cm:View.Model="{Binding Content}" IsTabStop="False" />
</DataTemplate>
</DockingManager.LayoutItemTemplate>
<DockingManager.LayoutItemContainerStyle>
<Style TargetType="{x:Type LayoutItem}">
<Setter Property="Title" Value="{Binding Model.DisplayName, Mode=OneWay}"/>
<Setter Property="CloseCommand" Value="{Binding Model.CloseCommand}"/>
</Style>
</DockingManager.LayoutItemContainerStyle>
<LayoutRoot>
<LayoutPanel>
<LayoutDocumentPaneGroup>
<LayoutDocumentPane />
</LayoutDocumentPaneGroup>
<LayoutAnchorablePaneGroup>
<LayoutAnchorablePane DockMinWidth="300" />
</LayoutAnchorablePaneGroup>
</LayoutPanel>
</LayoutRoot>
</DockingManager>
</Grid>
我认为视图模型代码并不重要。项目中还安装了caliburn.micro
请告诉我如何获得第一张图片中的侧边栏。
你必须安装 VS2013 主题包 (link) 然后像下面这样使用精简版:
<DockingManager.Theme>
<Vs2013LightTheme />
</DockingManager.Theme>