我在我的WPF项目中使用Avalondock来创建包含布局文档的多个选项卡。有没有办法修复选项卡的位置,以便用户无法拖动和交换选项卡的位置。
以下是我的代码:
<avalonDock:DockingManager Grid.Row="1" x:Name="dockManager" AllowMixedOrientation="True" ActiveContentChanged="dockManager_ActiveContentChanged" Loaded="dockManager_Loaded" Mouse.MouseDown="dockManager_MouseDown">
<avalonDock:DockingManager.Theme>
<avalonDock:AeroTheme/>
</avalonDock:DockingManager.Theme>
<avalonDock:DockingManager.DocumentHeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding IconSource}" Margin="0,0,4,0"/>
<TextBlock Text="{Binding Title , NotifyOnTargetUpdated=True}" TextTrimming="CharacterEllipsis" TargetUpdated="TextBlock_TargetUpdated" PreviewMouseDown="TextBlock_PreviewMouseDown"/>
<TextBlock Visibility="{Binding IsVisible}" />
</StackPanel>
</DataTemplate>
</avalonDock:DockingManager.DocumentHeaderTemplate>
<avalonDock:LayoutRoot x:Name="layout">
<avalonDock:LayoutPanel Orientation="Horizontal" DockWidth="450" DockMinWidth="200" >
<avalonDock:LayoutDocumentPane DockWidth="100*" x:Name="documentPane" >
<avalonDock:LayoutDocument CanClose="False" CanFloat="False" ContentId="doc1" FloatingWidth="100">
<StackPanel>
<Frame BorderThickness="2" NavigationUIVisibility="Hidden" x:Name="Mainframe" Source="{Binding DisplayPage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</avalonDock:LayoutDocument>
</avalonDock:LayoutDocumentPane>
</avalonDock:LayoutPanel>
</avalonDock:LayoutRoot>
</avalonDock:DockingManager>
答案 0 :(得分:1)
在LayoutDocumentPane中设置CanRepositionItems="False"
<avalonDock:LayoutDocumentPane DockWidth="100*" x:Name="documentPane" CanRepositionItems="False">
<avalonDock:LayoutDocument CanClose="False" CanFloat="False" ContentId="doc1" FloatingWidth="100">
<StackPanel>
<Frame BorderThickness="2" NavigationUIVisibility="Hidden" x:Name="Mainframe" Source="{Binding DisplayPage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</avalonDock:LayoutDocument>
</avalonDock:LayoutDocumentPane>
答案 1 :(得分:0)
在LayoutDocument中设置 CanFloat = false 。
<avalonDock:DockingManager Grid.Row="1" x:Name="dockManager" AllowMixedOrientation="True" ActiveContentChanged="dockManager_ActiveContentChanged" Loaded="dockManager_Loaded" Mouse.MouseDown="dockManager_MouseDown">
<avalonDock:DockingManager.Theme>
<avalonDock:AeroTheme/>
</avalonDock:DockingManager.Theme>
<avalonDock:DockingManager.DocumentHeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding IconSource}" Margin="0,0,4,0"/>
<TextBlock Text="{Binding Title , NotifyOnTargetUpdated=True}" TextTrimming="CharacterEllipsis" TargetUpdated="TextBlock_TargetUpdated" PreviewMouseDown="TextBlock_PreviewMouseDown"/>
<TextBlock Visibility="{Binding IsVisible}" />
</StackPanel>
</DataTemplate>
</avalonDock:DockingManager.DocumentHeaderTemplate>
<avalonDock:LayoutRoot x:Name="layout">
<avalonDock:LayoutPanel Orientation="Horizontal" DockWidth="450" DockMinWidth="200" CanFloat="False">
<avalonDock:LayoutDocumentPane DockWidth="100*" x:Name="documentPane" >
<avalonDock:LayoutDocument CanClose="False" CanFloat="False" ContentId="doc1" FloatingWidth="100">
<StackPanel>
<Frame BorderThickness="2" NavigationUIVisibility="Hidden" x:Name="Mainframe" Source="{Binding DisplayPage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</avalonDock:LayoutDocument>
</avalonDock:LayoutDocumentPane>
</avalonDock:LayoutPanel>
</avalonDock:LayoutRoot>
</avalonDock:DockingManager>