|
|
@ -2,10 +2,11 @@ |
|
|
|
|
|
|
|
|
Toolkit for WPF |
|
|
Toolkit for WPF |
|
|
|
|
|
|
|
|
Copyright (C) 2007-2019 Xceed Software Inc. |
|
|
Copyright (C) 2007-2020 Xceed Software Inc. |
|
|
|
|
|
|
|
|
This program is provided to you under the terms of the Microsoft Public |
|
|
This program is provided to you under the terms of the XCEED SOFTWARE, INC. |
|
|
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md |
|
|
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at |
|
|
|
|
|
https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md |
|
|
|
|
|
|
|
|
For more features, controls, and fast professional support, |
|
|
For more features, controls, and fast professional support, |
|
|
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/ |
|
|
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/ |
|
|
@ -16,15 +17,13 @@ |
|
|
|
|
|
|
|
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
|
xmlns:localThemes="clr-namespace:Xceed.Wpf.AvalonDock.Themes" |
|
|
xmlns:shell="http://schemas.xceed.com/wpf/xaml/avalondock" |
|
|
xmlns:shell="clr-namespace:Microsoft.Windows.Shell;assembly=Xceed.Wpf.AvalonDock" |
|
|
xmlns:avalonDock="http://schemas.xceed.com/wpf/xaml/avalondock" |
|
|
xmlns:avalonDock="clr-namespace:Xceed.Wpf.AvalonDock;assembly=Xceed.Wpf.AvalonDock" |
|
|
xmlns:avalonDockControls="http://schemas.xceed.com/wpf/xaml/avalondock" |
|
|
xmlns:avalonDockLayout="clr-namespace:Xceed.Wpf.AvalonDock.Layout;assembly=Xceed.Wpf.AvalonDock" |
|
|
|
|
|
xmlns:avalonDockControls="clr-namespace:Xceed.Wpf.AvalonDock.Controls;assembly=Xceed.Wpf.AvalonDock" |
|
|
|
|
|
xmlns:avalonDockAero="clr-namespace:Xceed.Wpf.AvalonDock.Themes" |
|
|
xmlns:avalonDockAero="clr-namespace:Xceed.Wpf.AvalonDock.Themes" |
|
|
xmlns:avalonDockThemeControls="clr-namespace:Xceed.Wpf.AvalonDock.Themes.Controls" |
|
|
xmlns:avalonDockThemeControls="clr-namespace:Xceed.Wpf.AvalonDock.Themes.Controls" |
|
|
xmlns:avalonDockConverters="clr-namespace:Xceed.Wpf.AvalonDock.Converters;assembly=Xceed.Wpf.AvalonDock" |
|
|
xmlns:avalonDockConverters="http://schemas.xceed.com/wpf/xaml/avalondock" |
|
|
xmlns:avalonDockProperties="clr-namespace:Xceed.Wpf.AvalonDock.Properties;assembly=Xceed.Wpf.AvalonDock"> |
|
|
xmlns:avalonDockProperties="http://schemas.xceed.com/wpf/xaml/avalondock"> |
|
|
|
|
|
|
|
|
<ResourceDictionary.MergedDictionaries> |
|
|
<ResourceDictionary.MergedDictionaries> |
|
|
<ResourceDictionary Source="Brushes.xaml" /> |
|
|
<ResourceDictionary Source="Brushes.xaml" /> |
|
|
@ -43,6 +42,10 @@ |
|
|
<avalonDockControls:LayoutDocumentControl Model="{Binding}" /> |
|
|
<avalonDockControls:LayoutDocumentControl Model="{Binding}" /> |
|
|
</DataTemplate> |
|
|
</DataTemplate> |
|
|
|
|
|
|
|
|
|
|
|
<DataTemplate x:Key="AnchorablePaneControlContentTemplate"> |
|
|
|
|
|
<avalonDockControls:LayoutAnchorableControl Model="{Binding}" /> |
|
|
|
|
|
</DataTemplate> |
|
|
|
|
|
|
|
|
<!--DocumentPaneControlStyle--> |
|
|
<!--DocumentPaneControlStyle--> |
|
|
<Style x:Key="AvalonDock_ThemeAero_DocumentPaneControlStyle" |
|
|
<Style x:Key="AvalonDock_ThemeAero_DocumentPaneControlStyle" |
|
|
TargetType="{x:Type avalonDockControls:LayoutDocumentPaneControl}"> |
|
|
TargetType="{x:Type avalonDockControls:LayoutDocumentPaneControl}"> |
|
|
@ -76,7 +79,8 @@ |
|
|
IsItemsHost="true" |
|
|
IsItemsHost="true" |
|
|
Margin="4,0,16,0" |
|
|
Margin="4,0,16,0" |
|
|
Grid.Row="0" |
|
|
Grid.Row="0" |
|
|
KeyboardNavigation.TabIndex="1" /> |
|
|
KeyboardNavigation.TabIndex="1" |
|
|
|
|
|
KeyboardNavigation.DirectionalNavigation="Cycle"/> |
|
|
<avalonDockControls:DropDownButton x:Name="MenuDropDownButton" |
|
|
<avalonDockControls:DropDownButton x:Name="MenuDropDownButton" |
|
|
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}" |
|
|
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}" |
|
|
Focusable="False" |
|
|
Focusable="False" |
|
|
@ -127,6 +131,7 @@ |
|
|
CornerRadius="2"> |
|
|
CornerRadius="2"> |
|
|
<ContentPresenter x:Name="PART_SelectedContentHost" |
|
|
<ContentPresenter x:Name="PART_SelectedContentHost" |
|
|
ContentSource="SelectedContent" |
|
|
ContentSource="SelectedContent" |
|
|
|
|
|
ContentTemplate="{TemplateBinding ContentTemplate}" |
|
|
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> |
|
|
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> |
|
|
</Border> |
|
|
</Border> |
|
|
</Border> |
|
|
</Border> |
|
|
@ -206,8 +211,7 @@ |
|
|
BorderThickness="0,1,1,0" |
|
|
BorderThickness="0,1,1,0" |
|
|
CornerRadius="0,2,0,0"> |
|
|
CornerRadius="0,2,0,0"> |
|
|
<Border x:Name="BdInternal" |
|
|
<Border x:Name="BdInternal" |
|
|
Background="{TemplateBinding Background}" |
|
|
Background="{TemplateBinding Background}"> |
|
|
Padding="{TemplateBinding Padding}"> |
|
|
|
|
|
<ContentPresenter x:Name="Content" |
|
|
<ContentPresenter x:Name="Content" |
|
|
ContentSource="Header" |
|
|
ContentSource="Header" |
|
|
HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" |
|
|
HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" |
|
|
@ -320,6 +324,7 @@ |
|
|
KeyboardNavigation.TabNavigation="Cycle"> |
|
|
KeyboardNavigation.TabNavigation="Cycle"> |
|
|
<ContentPresenter x:Name="PART_SelectedContentHost" |
|
|
<ContentPresenter x:Name="PART_SelectedContentHost" |
|
|
ContentSource="SelectedContent" |
|
|
ContentSource="SelectedContent" |
|
|
|
|
|
ContentTemplate="{TemplateBinding ContentTemplate}" |
|
|
Margin="{TemplateBinding Padding}" |
|
|
Margin="{TemplateBinding Padding}" |
|
|
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> |
|
|
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> |
|
|
</Border> |
|
|
</Border> |
|
|
@ -328,6 +333,7 @@ |
|
|
IsItemsHost="true" |
|
|
IsItemsHost="true" |
|
|
Grid.Row="1" |
|
|
Grid.Row="1" |
|
|
KeyboardNavigation.TabIndex="1" |
|
|
KeyboardNavigation.TabIndex="1" |
|
|
|
|
|
KeyboardNavigation.DirectionalNavigation="Cycle" |
|
|
Panel.ZIndex="1" /> |
|
|
Panel.ZIndex="1" /> |
|
|
</Grid> |
|
|
</Grid> |
|
|
<ControlTemplate.Triggers> |
|
|
<ControlTemplate.Triggers> |
|
|
@ -369,8 +375,7 @@ |
|
|
<Border x:Name="Bd" |
|
|
<Border x:Name="Bd" |
|
|
BorderBrush="{TemplateBinding BorderBrush}" |
|
|
BorderBrush="{TemplateBinding BorderBrush}" |
|
|
BorderThickness="1,0,1,1" |
|
|
BorderThickness="1,0,1,1" |
|
|
Background="{TemplateBinding Background}" |
|
|
Background="{TemplateBinding Background}"> |
|
|
Padding="{TemplateBinding Padding}"> |
|
|
|
|
|
<ContentPresenter x:Name="Content" |
|
|
<ContentPresenter x:Name="Content" |
|
|
ContentSource="Header" |
|
|
ContentSource="Header" |
|
|
HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" |
|
|
HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" |
|
|
@ -437,13 +442,9 @@ |
|
|
</Setter.Value> |
|
|
</Setter.Value> |
|
|
</Setter> |
|
|
</Setter> |
|
|
|
|
|
|
|
|
<Setter Property="ContentTemplate"> |
|
|
<Setter Property="ContentTemplate" |
|
|
<Setter.Value> |
|
|
Value="{StaticResource AnchorablePaneControlContentTemplate}" /> |
|
|
<DataTemplate> |
|
|
|
|
|
<avalonDockControls:LayoutAnchorableControl Model="{Binding}" /> |
|
|
|
|
|
</DataTemplate> |
|
|
|
|
|
</Setter.Value> |
|
|
|
|
|
</Setter> |
|
|
|
|
|
</Style> |
|
|
</Style> |
|
|
|
|
|
|
|
|
<Style TargetType="avalonDockControls:AnchorablePaneTitle"> |
|
|
<Style TargetType="avalonDockControls:AnchorablePaneTitle"> |
|
|
@ -613,8 +614,8 @@ |
|
|
Margin="0,4,0,0" |
|
|
Margin="0,4,0,0" |
|
|
Padding="2"> |
|
|
Padding="2"> |
|
|
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}" |
|
|
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}" |
|
|
ContentTemplate="{Binding AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" |
|
|
ContentTemplate="{Binding Model.Root.Manager.AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" |
|
|
ContentTemplateSelector="{Binding AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" /> |
|
|
ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" /> |
|
|
</Border> |
|
|
</Border> |
|
|
<ControlTemplate.Triggers> |
|
|
<ControlTemplate.Triggers> |
|
|
<Trigger Property="Side" |
|
|
<Trigger Property="Side" |
|
|
@ -1157,11 +1158,14 @@ |
|
|
<Setter Property="Template"> |
|
|
<Setter Property="Template"> |
|
|
<Setter.Value> |
|
|
<Setter.Value> |
|
|
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutDocumentTabItem}"> |
|
|
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutDocumentTabItem}"> |
|
|
|
|
|
<!--Use a transparent background to hit for contextMenu popup--> |
|
|
<avalonDockControls:DropDownControlArea DropDownContextMenu="{Binding Root.Manager.DocumentContextMenu}" |
|
|
<avalonDockControls:DropDownControlArea DropDownContextMenu="{Binding Root.Manager.DocumentContextMenu}" |
|
|
DropDownContextMenuDataContext="{Binding LayoutItem, RelativeSource={RelativeSource TemplatedParent}}"> |
|
|
DropDownContextMenuDataContext="{Binding LayoutItem, RelativeSource={RelativeSource TemplatedParent}}" |
|
|
|
|
|
Background="Transparent"> |
|
|
<Border Background="{TemplateBinding Background}" |
|
|
<Border Background="{TemplateBinding Background}" |
|
|
BorderBrush="{TemplateBinding BorderBrush}" |
|
|
BorderBrush="{TemplateBinding BorderBrush}" |
|
|
BorderThickness="{TemplateBinding BorderThickness}"> |
|
|
BorderThickness="{TemplateBinding BorderThickness}" |
|
|
|
|
|
Margin="{Binding Padding, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}"> |
|
|
<Grid> |
|
|
<Grid> |
|
|
<Grid.ColumnDefinitions> |
|
|
<Grid.ColumnDefinitions> |
|
|
<ColumnDefinition Width="*" /> |
|
|
<ColumnDefinition Width="*" /> |
|
|
@ -1171,8 +1175,8 @@ |
|
|
<Border Grid.ColumnSpan="3" |
|
|
<Border Grid.ColumnSpan="3" |
|
|
Background="Transparent" /> |
|
|
Background="Transparent" /> |
|
|
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}" |
|
|
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}" |
|
|
ContentTemplate="{Binding DocumentHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" |
|
|
ContentTemplate="{Binding Root.Manager.DocumentHeaderTemplate, Mode=OneWay}" |
|
|
ContentTemplateSelector="{Binding DocumentHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" /> |
|
|
ContentTemplateSelector="{Binding Root.Manager.DocumentHeaderTemplateSelector, Mode=OneWay}" /> |
|
|
<!-- Close button should be moved out to the container style --> |
|
|
<!-- Close button should be moved out to the container style --> |
|
|
<Button x:Name="DocumentCloseButton" |
|
|
<Button x:Name="DocumentCloseButton" |
|
|
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" |
|
|
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" |
|
|
@ -1233,19 +1237,18 @@ |
|
|
<Setter Property="Template"> |
|
|
<Setter Property="Template"> |
|
|
<Setter.Value> |
|
|
<Setter.Value> |
|
|
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutAnchorableTabItem}"> |
|
|
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutAnchorableTabItem}"> |
|
|
|
|
|
<!--Use a transparent background to hit for contextMenu popup--> |
|
|
<avalonDockControls:DropDownControlArea DropDownContextMenu="{Binding Root.Manager.AnchorableContextMenu}" |
|
|
<avalonDockControls:DropDownControlArea DropDownContextMenu="{Binding Root.Manager.AnchorableContextMenu}" |
|
|
DropDownContextMenuDataContext="{Binding LayoutItem, RelativeSource={RelativeSource TemplatedParent}}"> |
|
|
DropDownContextMenuDataContext="{Binding LayoutItem, RelativeSource={RelativeSource TemplatedParent}}" |
|
|
|
|
|
Background="Transparent"> |
|
|
<Border Background="{TemplateBinding Background}" |
|
|
<Border Background="{TemplateBinding Background}" |
|
|
BorderBrush="{TemplateBinding BorderBrush}" |
|
|
BorderBrush="{TemplateBinding BorderBrush}" |
|
|
BorderThickness="{TemplateBinding BorderThickness}"> |
|
|
BorderThickness="{TemplateBinding BorderThickness}" |
|
|
|
|
|
Margin="{Binding Padding, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}"> |
|
|
<Grid> |
|
|
<Grid> |
|
|
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}" |
|
|
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}" |
|
|
ContentTemplate="{Binding AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" |
|
|
ContentTemplate="{Binding Root.Manager.AnchorableHeaderTemplate, Mode=OneWay}" |
|
|
ContentTemplateSelector="{Binding AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" /> |
|
|
ContentTemplateSelector="{Binding Root.Manager.AnchorableHeaderTemplateSelector, Mode=OneWay}" /> |
|
|
<avalonDockControls:DropDownControlArea Grid.Column="0" |
|
|
|
|
|
DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}" |
|
|
|
|
|
DropDownContextMenuDataContext="{Binding Path=Model, RelativeSource={RelativeSource TemplatedParent}}" > |
|
|
|
|
|
</avalonDockControls:DropDownControlArea> |
|
|
|
|
|
</Grid> |
|
|
</Grid> |
|
|
</Border> |
|
|
</Border> |
|
|
</avalonDockControls:DropDownControlArea> |
|
|
</avalonDockControls:DropDownControlArea> |
|
|
@ -1322,6 +1325,7 @@ |
|
|
<Setter Property="Template"> |
|
|
<Setter Property="Template"> |
|
|
<Setter.Value> |
|
|
<Setter.Value> |
|
|
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutDocumentFloatingWindowControl}"> |
|
|
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutDocumentFloatingWindowControl}"> |
|
|
|
|
|
<AdornerDecorator> |
|
|
<Grid> |
|
|
<Grid> |
|
|
<Border x:Name="WindowBorder" |
|
|
<Border x:Name="WindowBorder" |
|
|
BorderThickness="{TemplateBinding BorderThickness}" |
|
|
BorderThickness="{TemplateBinding BorderThickness}" |
|
|
@ -1416,6 +1420,7 @@ |
|
|
</Grid> |
|
|
</Grid> |
|
|
</Border> |
|
|
</Border> |
|
|
</Grid> |
|
|
</Grid> |
|
|
|
|
|
</AdornerDecorator> |
|
|
<ControlTemplate.Triggers> |
|
|
<ControlTemplate.Triggers> |
|
|
<Trigger Property="WindowState" |
|
|
<Trigger Property="WindowState" |
|
|
Value="Maximized"> |
|
|
Value="Maximized"> |
|
|
@ -1496,6 +1501,7 @@ |
|
|
<Setter Property="Template"> |
|
|
<Setter Property="Template"> |
|
|
<Setter.Value> |
|
|
<Setter.Value> |
|
|
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutAnchorableFloatingWindowControl}"> |
|
|
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutAnchorableFloatingWindowControl}"> |
|
|
|
|
|
<AdornerDecorator> |
|
|
<Grid> |
|
|
<Grid> |
|
|
<Border x:Name="WindowBorder" |
|
|
<Border x:Name="WindowBorder" |
|
|
BorderThickness="{TemplateBinding BorderThickness}" |
|
|
BorderThickness="{TemplateBinding BorderThickness}" |
|
|
@ -1606,6 +1612,7 @@ |
|
|
</Grid> |
|
|
</Grid> |
|
|
</Border> |
|
|
</Border> |
|
|
</Grid> |
|
|
</Grid> |
|
|
|
|
|
</AdornerDecorator> |
|
|
<ControlTemplate.Triggers> |
|
|
<ControlTemplate.Triggers> |
|
|
<Trigger Property="WindowState" |
|
|
<Trigger Property="WindowState" |
|
|
Value="Maximized"> |
|
|
Value="Maximized"> |
|
|
|