Browse Source

V4.0.0 Released

pull/1622/head
Simon Boucher 6 years ago
parent
commit
1df13d45e1
  1. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AeroColors.cs
  2. 24
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AeroTheme.cs
  3. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Brushes.xaml
  4. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Controls/SplineBorder.cs
  5. 9
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs
  6. 487
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml
  7. 14
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Xceed.Wpf.AvalonDock.Themes.Aero.csproj
  8. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Brushes.xaml
  9. 24
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/MetroTheme.cs
  10. 9
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Properties/AssemblyInfo.cs
  11. 511
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Theme.xaml
  12. 14
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Xceed.Wpf.AvalonDock.Themes.Metro.csproj
  13. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Brushes.xaml
  14. 9
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Properties/AssemblyInfo.cs
  15. 488
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Theme.xaml
  16. 24
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/VS2010Theme.cs
  17. 14
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Xceed.Wpf.AvalonDock.Themes.VS2010.csproj
  18. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Commands/RelayCommand.cs
  19. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneControlOverlayArea.cs
  20. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneDropTarget.cs
  21. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneTabPanel.cs
  22. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneTitle.cs
  23. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AutoHideWindowManager.cs
  24. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/BindingHelper.cs
  25. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/ContextMenuEx.cs
  26. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DockingManagerDropTarget.cs
  27. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DockingManagerOverlayArea.cs
  28. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneControlOverlayArea.cs
  29. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropAsAnchorableTarget.cs
  30. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropTarget.cs
  31. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneGroupDropTarget.cs
  32. 13
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneTabPanel.cs
  33. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DragService.cs
  34. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropArea.cs
  35. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropDownButton.cs
  36. 9
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropDownControlArea.cs
  37. 12
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTarget.cs
  38. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTargetBase.cs
  39. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTargetType.cs
  40. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Extentions.cs
  41. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/FocusElementManager.cs
  42. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/FullWeakDictionary.cs
  43. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IDropTarget.cs
  44. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindow.cs
  45. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowArea.cs
  46. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowDropTarget.cs
  47. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowHost.cs
  48. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorControl.cs
  49. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorGroupControl.cs
  50. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorSideControl.cs
  51. 15
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableControl.cs
  52. 170
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableFloatingWindowControl.cs
  53. 18
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableItem.cs
  54. 28
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs
  55. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneGroupControl.cs
  56. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableTabItem.cs
  57. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAutoHideWindowControl.cs
  58. 103
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutCachePaneControl.cs
  59. 36
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentControl.cs
  60. 45
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentFloatingWindowControl.cs
  61. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentItem.cs
  62. 92
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneControl.cs
  63. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneGroupControl.cs
  64. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentTabItem.cs
  65. 321
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs
  66. 23
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs
  67. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridResizerControl.cs
  68. 33
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutItem.cs
  69. 15
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutPanelControl.cs
  70. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/MenuItemEx.cs
  71. 67
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/NavigatorWindow.cs
  72. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayArea.cs
  73. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindow.cs
  74. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindowDropTarget.cs
  75. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindowDropTargetType.cs
  76. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/ReentrantFlag.cs
  77. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ComGuids.cs
  78. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Debug.cs
  79. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/DoubleUtil.cs
  80. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/DpiHelper.cs
  81. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ErrorCodes.cs
  82. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/MessageWindow.cs
  83. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/NativeMethods.cs
  84. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ShellProvider.cs
  85. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/StreamHelper.cs
  86. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Utilities.cs
  87. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Verify.cs
  88. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/SystemCommands.cs
  89. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/SystemParameters2.cs
  90. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/WindowChrome.cs
  91. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/WindowChromeWorker.cs
  92. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/TransformExtentions.cs
  93. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WeakDictionary.cs
  94. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WindowActivateEventArgs.cs
  95. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WindowHookHandler.cs
  96. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/ActivateCommandLayoutItemFromLayoutModelConverter.cs
  97. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorSideToAngleConverter.cs
  98. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorSideToOrientationConverter.cs
  99. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorableContextMenuHideVisibilityConverter.cs
  100. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AutoHideCommandLayoutItemFromLayoutModelConverter.cs

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AeroColors.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

24
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AeroTheme.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -21,13 +22,16 @@ using System.Text;
namespace Xceed.Wpf.AvalonDock.Themes
{
public class AeroTheme : Theme
public class AeroTheme : Theme
{
public override Uri GetResourceUri()
{
public override Uri GetResourceUri()
{
return new Uri(
"/Xceed.Wpf.AvalonDock.Themes.Aero;component/Theme.xaml",
UriKind.Relative);
}
string assemblyName = "Xceed.Wpf.AvalonDock.Themes.Aero";
return new Uri(
"/" + assemblyName + ";component/Theme.xaml",
UriKind.Relative );
}
}
}

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Brushes.xaml

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Controls/SplineBorder.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

9
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -30,7 +31,7 @@ using System;
[assembly: AssemblyCompany( "Xceed Software Inc." )]
[assembly: AssemblyProduct( "Xceed Toolkit for WPF - AvalonDock" )]
[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2019" )]
[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2020" )]

487
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
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"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localThemes="clr-namespace:Xceed.Wpf.AvalonDock.Themes"
xmlns:shell="clr-namespace:Microsoft.Windows.Shell;assembly=Xceed.Wpf.AvalonDock"
xmlns:avalonDock="clr-namespace:Xceed.Wpf.AvalonDock;assembly=Xceed.Wpf.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:shell="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDock="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDockControls="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDockAero="clr-namespace:Xceed.Wpf.AvalonDock.Themes"
xmlns:avalonDockThemeControls="clr-namespace:Xceed.Wpf.AvalonDock.Themes.Controls"
xmlns:avalonDockConverters="clr-namespace:Xceed.Wpf.AvalonDock.Converters;assembly=Xceed.Wpf.AvalonDock"
xmlns:avalonDockProperties="clr-namespace:Xceed.Wpf.AvalonDock.Properties;assembly=Xceed.Wpf.AvalonDock">
xmlns:avalonDockConverters="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDockProperties="http://schemas.xceed.com/wpf/xaml/avalondock">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Brushes.xaml" />
@ -43,6 +42,10 @@
<avalonDockControls:LayoutDocumentControl Model="{Binding}" />
</DataTemplate>
<DataTemplate x:Key="AnchorablePaneControlContentTemplate">
<avalonDockControls:LayoutAnchorableControl Model="{Binding}" />
</DataTemplate>
<!--DocumentPaneControlStyle-->
<Style x:Key="AvalonDock_ThemeAero_DocumentPaneControlStyle"
TargetType="{x:Type avalonDockControls:LayoutDocumentPaneControl}">
@ -76,7 +79,8 @@
IsItemsHost="true"
Margin="4,0,16,0"
Grid.Row="0"
KeyboardNavigation.TabIndex="1" />
KeyboardNavigation.TabIndex="1"
KeyboardNavigation.DirectionalNavigation="Cycle"/>
<avalonDockControls:DropDownButton x:Name="MenuDropDownButton"
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}"
Focusable="False"
@ -127,6 +131,7 @@
CornerRadius="2">
<ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
</Border>
@ -206,8 +211,7 @@
BorderThickness="0,1,1,0"
CornerRadius="0,2,0,0">
<Border x:Name="BdInternal"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}">
Background="{TemplateBinding Background}">
<ContentPresenter x:Name="Content"
ContentSource="Header"
HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"
@ -320,6 +324,7 @@
KeyboardNavigation.TabNavigation="Cycle">
<ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
@ -328,6 +333,7 @@
IsItemsHost="true"
Grid.Row="1"
KeyboardNavigation.TabIndex="1"
KeyboardNavigation.DirectionalNavigation="Cycle"
Panel.ZIndex="1" />
</Grid>
<ControlTemplate.Triggers>
@ -369,8 +375,7 @@
<Border x:Name="Bd"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="1,0,1,1"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}">
Background="{TemplateBinding Background}">
<ContentPresenter x:Name="Content"
ContentSource="Header"
HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"
@ -437,13 +442,9 @@
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<avalonDockControls:LayoutAnchorableControl Model="{Binding}" />
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate"
Value="{StaticResource AnchorablePaneControlContentTemplate}" />
</Style>
<Style TargetType="avalonDockControls:AnchorablePaneTitle">
@ -613,8 +614,8 @@
Margin="0,4,0,0"
Padding="2">
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}"
ContentTemplateSelector="{Binding AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" />
ContentTemplate="{Binding Model.Root.Manager.AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Side"
@ -1157,11 +1158,14 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutDocumentTabItem}">
<!--Use a transparent background to hit for contextMenu popup-->
<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}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
BorderThickness="{TemplateBinding BorderThickness}"
Margin="{Binding Padding, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@ -1171,8 +1175,8 @@
<Border Grid.ColumnSpan="3"
Background="Transparent" />
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding DocumentHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}"
ContentTemplateSelector="{Binding DocumentHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" />
ContentTemplate="{Binding Root.Manager.DocumentHeaderTemplate, Mode=OneWay}"
ContentTemplateSelector="{Binding Root.Manager.DocumentHeaderTemplateSelector, Mode=OneWay}" />
<!-- Close button should be moved out to the container style -->
<Button x:Name="DocumentCloseButton"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
@ -1233,19 +1237,18 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutAnchorableTabItem}">
<!--Use a transparent background to hit for contextMenu popup-->
<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}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
BorderThickness="{TemplateBinding BorderThickness}"
Margin="{Binding Padding, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}">
<Grid>
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}"
ContentTemplateSelector="{Binding AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" />
<avalonDockControls:DropDownControlArea Grid.Column="0"
DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=Model, RelativeSource={RelativeSource TemplatedParent}}" >
</avalonDockControls:DropDownControlArea>
ContentTemplate="{Binding Root.Manager.AnchorableHeaderTemplate, Mode=OneWay}"
ContentTemplateSelector="{Binding Root.Manager.AnchorableHeaderTemplateSelector, Mode=OneWay}" />
</Grid>
</Border>
</avalonDockControls:DropDownControlArea>
@ -1322,100 +1325,102 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutDocumentFloatingWindowControl}">
<Grid>
<Border x:Name="WindowBorder"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid Margin="3">
<Grid.RowDefinitions>
<RowDefinition MinHeight="18"
Height="Auto"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border x:Name="Header"
Padding="2,0,2,0">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ContentPresenter Content="{Binding Model.RootDocument, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.DocumentTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.DocumentTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
<avalonDockControls:DropDownButton x:Name="ContextMenuDropdownButton"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.DocumentContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=RootDocumentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu_Dark.png"
Width="13" >
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize_Dark.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore_Dark.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding Path=RootDocumentLayoutItem.CloseCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_Close}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose_Dark.png"
Width="13" >
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1" />
</Grid>
</Border>
</Grid>
<AdornerDecorator>
<Grid>
<Border x:Name="WindowBorder"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid Margin="3">
<Grid.RowDefinitions>
<RowDefinition MinHeight="18"
Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border x:Name="Header"
Padding="2,0,2,0">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ContentPresenter Content="{Binding Model.RootDocument, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.DocumentTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.DocumentTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
<avalonDockControls:DropDownButton x:Name="ContextMenuDropdownButton"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.DocumentContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=RootDocumentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu_Dark.png"
Width="13">
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize_Dark.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore_Dark.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding Path=RootDocumentLayoutItem.CloseCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_Close}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose_Dark.png"
Width="13">
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1" />
</Grid>
</Border>
</Grid>
</AdornerDecorator>
<ControlTemplate.Triggers>
<Trigger Property="WindowState"
Value="Maximized">
@ -1496,116 +1501,118 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutAnchorableFloatingWindowControl}">
<Grid>
<Border x:Name="WindowBorder"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="18"
Height="Auto"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border x:Name="Header"
CornerRadius="1,1,0,0"
Padding="2,0,2,0"
Background="{DynamicResource {x:Static avalonDockAero:AeroColors.BaseColor16Key}}">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}">
<avalonDockControls:DropDownControlArea DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter Content="{Binding Model.SinglePane.SelectedContent, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.AnchorableTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
</avalonDockControls:DropDownControlArea>
</Border>
<avalonDockControls:DropDownButton x:Name="SinglePaneContextMenu"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu_Dark.png"
Width="13" >
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize_Dark.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore_Dark.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding HideWindowCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_BtnClose_Hint}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose_Dark.png"
Width="13" >
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1" />
</Grid>
</Border>
</Grid>
<AdornerDecorator>
<Grid>
<Border x:Name="WindowBorder"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="18"
Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border x:Name="Header"
CornerRadius="1,1,0,0"
Padding="2,0,2,0"
Background="{DynamicResource {x:Static avalonDockAero:AeroColors.BaseColor16Key}}">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}">
<avalonDockControls:DropDownControlArea DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter Content="{Binding Model.SinglePane.SelectedContent, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.AnchorableTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
</avalonDockControls:DropDownControlArea>
</Border>
<avalonDockControls:DropDownButton x:Name="SinglePaneContextMenu"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu_Dark.png"
Width="13">
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize_Dark.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore_Dark.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding HideWindowCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_BtnClose_Hint}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose_Dark.png"
Width="13">
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1" />
</Grid>
</Border>
</Grid>
</AdornerDecorator>
<ControlTemplate.Triggers>
<Trigger Property="WindowState"
Value="Maximized">

14
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Xceed.Wpf.AvalonDock.Themes.Aero.csproj

@ -188,11 +188,11 @@
<Resource Include="Images\PinDocMenu_Dark.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
</Project>

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Brushes.xaml

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

24
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/MetroTheme.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -21,13 +22,16 @@ using System.Text;
namespace Xceed.Wpf.AvalonDock.Themes
{
public class MetroTheme : Theme
public class MetroTheme : Theme
{
public override Uri GetResourceUri()
{
public override Uri GetResourceUri()
{
return new Uri(
"/Xceed.Wpf.AvalonDock.Themes.Metro;component/Theme.xaml",
UriKind.Relative);
}
string assemblyName = "Xceed.Wpf.AvalonDock.Themes.Metro";
return new Uri(
"/" + assemblyName + ";component/Theme.xaml",
UriKind.Relative );
}
}
}

9
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Properties/AssemblyInfo.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -30,7 +31,7 @@ using System;
[assembly: AssemblyCompany( "Xceed Software Inc." )]
[assembly: AssemblyProduct( "Xceed Toolkit for WPF - AvalonDock" )]
[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2019" )]
[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2020" )]

511
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Theme.xaml

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -16,13 +17,11 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localThemes="clr-namespace:Xceed.Wpf.AvalonDock.Themes"
xmlns:shell="clr-namespace:Microsoft.Windows.Shell;assembly=Xceed.Wpf.AvalonDock"
xmlns:avalonDock="clr-namespace:Xceed.Wpf.AvalonDock;assembly=Xceed.Wpf.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:avalonDockConverters="clr-namespace:Xceed.Wpf.AvalonDock.Converters;assembly=Xceed.Wpf.AvalonDock"
xmlns:avalonDockProperties="clr-namespace:Xceed.Wpf.AvalonDock.Properties;assembly=Xceed.Wpf.AvalonDock">
xmlns:shell="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDock="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDockControls="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDockConverters="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDockProperties="http://schemas.xceed.com/wpf/xaml/avalondock">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Brushes.xaml" />
@ -41,6 +40,10 @@
<avalonDockControls:LayoutDocumentControl Model="{Binding}" />
</DataTemplate>
<DataTemplate x:Key="AnchorablePaneControlContentTemplate">
<avalonDockControls:LayoutAnchorableControl Model="{Binding}" />
</DataTemplate>
<Style x:Key="AvalonDock_ThemeMetro_ToolButtonStyle"
TargetType="ToggleButton">
<Setter Property="Background"
@ -116,7 +119,8 @@
IsItemsHost="true"
Margin="2,0,2,0"
Grid.Row="0"
KeyboardNavigation.TabIndex="1" />
KeyboardNavigation.TabIndex="1"
KeyboardNavigation.DirectionalNavigation="Cycle" />
<avalonDockControls:DropDownButton x:Name="MenuDropDownButton"
Style="{StaticResource AvalonDock_ThemeMetro_ToolButtonStyle}"
Focusable="False"
@ -159,6 +163,7 @@
Padding="0,1,0,2">
<ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="0,2,0,2"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
@ -224,8 +229,7 @@
<Border x:Name="Bd"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="0,3,0,0"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}">
Background="{TemplateBinding Background}">
</Border>
<ContentPresenter x:Name="Content"
Margin="2"
@ -330,6 +334,7 @@
KeyboardNavigation.TabNavigation="Cycle">
<ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
@ -338,6 +343,7 @@
IsItemsHost="true"
Grid.Row="1"
KeyboardNavigation.TabIndex="1"
KeyboardNavigation.DirectionalNavigation="Cycle"
Panel.ZIndex="1" />
</Grid>
<ControlTemplate.Triggers>
@ -378,8 +384,7 @@
BorderBrush="{TemplateBinding BorderBrush}"
Margin="4"
BorderThickness="0,2,0,0"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}">
Background="{TemplateBinding Background}">
<ContentPresenter x:Name="Content"
ContentSource="Header"
HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"
@ -446,13 +451,9 @@
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<avalonDockControls:LayoutAnchorableControl Model="{Binding}" />
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate"
Value="{StaticResource AnchorablePaneControlContentTemplate}" />
</Style>
<Style TargetType="avalonDockControls:AnchorablePaneTitle">
@ -633,8 +634,8 @@
Padding="2">
<ContentPresenter TextElement.Foreground="{DynamicResource AvalonDock_ThemeMetro_BaseColor2}"
Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}"
ContentTemplateSelector="{Binding AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" />
ContentTemplate="{Binding Model.Root.Manager.AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Side"
@ -1180,12 +1181,15 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutDocumentTabItem}">
<!--Use a transparent background to hit for contextMenu popup-->
<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}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="0,2,0,1">
Padding="0,2,0,1"
Margin="{Binding Padding, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@ -1195,8 +1199,8 @@
<Border Grid.ColumnSpan="3"
Background="Transparent" />
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding DocumentHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}"
ContentTemplateSelector="{Binding DocumentHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" />
ContentTemplate="{Binding Root.Manager.DocumentHeaderTemplate, Mode=OneWay}"
ContentTemplateSelector="{Binding Root.Manager.DocumentHeaderTemplateSelector, Mode=OneWay}" />
<!-- Close button should be moved out to the container style -->
<Button x:Name="DocumentCloseButton"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
@ -1277,19 +1281,18 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutAnchorableTabItem}">
<!--Use a transparent background to hit for contextMenu popup-->
<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}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
BorderThickness="{TemplateBinding BorderThickness}"
Margin="{Binding Padding, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}">
<Grid>
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}"
ContentTemplateSelector="{Binding AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" />
<avalonDockControls:DropDownControlArea Grid.Column="0"
DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=Model, RelativeSource={RelativeSource TemplatedParent}}" >
</avalonDockControls:DropDownControlArea>
ContentTemplate="{Binding Root.Manager.AnchorableHeaderTemplate, Mode=OneWay}"
ContentTemplateSelector="{Binding Root.Manager.AnchorableHeaderTemplateSelector, Mode=OneWay}" />
</Grid>
</Border>
</avalonDockControls:DropDownControlArea>
@ -1365,112 +1368,114 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutDocumentFloatingWindowControl}">
<Grid>
<Border x:Name="WindowBorder"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="24"
Height="Auto"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border x:Name="bd"
Width="5"
VerticalAlignment="Stretch"
Background="{DynamicResource AvalonDock_ThemeMetro_BaseColor5}" />
<Border x:Name="Header"
Padding="2,0,2,0"
Grid.Column="1">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ContentPresenter Content="{Binding Model.RootDocument, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.DocumentTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.DocumentTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
<avalonDockControls:DropDownButton x:Name="ContextMenuDropdownButton"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Style="{StaticResource AvalonDock_ThemeMetro_ToolButtonStyle}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.DocumentContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=RootDocumentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu.png"
Width="13">
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding Path=RootDocumentLayoutItem.CloseCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_Close}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose.png"
Width="13" >
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1"
Grid.ColumnSpan="2" />
</Grid>
</Border>
</Grid>
<AdornerDecorator>
<Grid>
<Border x:Name="WindowBorder"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="24"
Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border x:Name="bd"
Width="5"
VerticalAlignment="Stretch"
Background="{DynamicResource AvalonDock_ThemeMetro_BaseColor5}" />
<Border x:Name="Header"
Padding="2,0,2,0"
Grid.Column="1">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ContentPresenter Content="{Binding Model.RootDocument, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.DocumentTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.DocumentTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
<avalonDockControls:DropDownButton x:Name="ContextMenuDropdownButton"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Style="{StaticResource AvalonDock_ThemeMetro_ToolButtonStyle}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.DocumentContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=RootDocumentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu.png"
Width="13">
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding Path=RootDocumentLayoutItem.CloseCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_Close}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose.png"
Width="13">
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1"
Grid.ColumnSpan="2" />
</Grid>
</Border>
</Grid>
</AdornerDecorator>
<ControlTemplate.Triggers>
<Trigger Property="WindowState"
Value="Maximized">
@ -1553,116 +1558,118 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutAnchorableFloatingWindowControl}">
<Grid>
<Border x:Name="WindowBorder"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="24"
Height="Auto"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border x:Name="Header"
Padding="2,0,2,0"
TextElement.Foreground="{DynamicResource AvalonDock_ThemeMetro_BaseColor2}"
Background="{TemplateBinding Background}">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}">
<avalonDockControls:DropDownControlArea DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter Content="{Binding Model.SinglePane.SelectedContent, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.AnchorableTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
</avalonDockControls:DropDownControlArea>
</Border>
<avalonDockControls:DropDownButton x:Name="SinglePaneContextMenu"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeMetro_ToolButtonStyle}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu.png"
Width="13" >
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding HideWindowCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_BtnClose_Hint}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose.png"
Width="13" >
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1" />
</Grid>
</Border>
</Grid>
<AdornerDecorator>
<Grid>
<Border x:Name="WindowBorder"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="24"
Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border x:Name="Header"
Padding="2,0,2,0"
TextElement.Foreground="{DynamicResource AvalonDock_ThemeMetro_BaseColor2}"
Background="{TemplateBinding Background}">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}">
<avalonDockControls:DropDownControlArea DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter Content="{Binding Model.SinglePane.SelectedContent, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.AnchorableTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
</avalonDockControls:DropDownControlArea>
</Border>
<avalonDockControls:DropDownButton x:Name="SinglePaneContextMenu"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeMetro_ToolButtonStyle}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu.png"
Width="13">
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource AvalonDock_ThemeMetro_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding HideWindowCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_BtnClose_Hint}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose.png"
Width="13">
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1" />
</Grid>
</Border>
</Grid>
</AdornerDecorator>
<ControlTemplate.Triggers>
<Trigger Property="WindowState"
Value="Maximized">

14
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Xceed.Wpf.AvalonDock.Themes.Metro.csproj

@ -115,11 +115,11 @@
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
</Project>

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Brushes.xaml

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

9
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Properties/AssemblyInfo.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -30,7 +31,7 @@ using System;
[assembly: AssemblyCompany( "Xceed Software Inc." )]
[assembly: AssemblyProduct( "Xceed Toolkit for WPF - AvalonDock" )]
[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2019" )]
[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2020" )]
// Setting ComVisible to false makes the types in this assembly not visible

488
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Theme.xaml

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -17,12 +18,12 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localThemes="clr-namespace:Xceed.Wpf.AvalonDock.Themes"
xmlns:shell="clr-namespace:Microsoft.Windows.Shell;assembly=Xceed.Wpf.AvalonDock"
xmlns:avalonDock="clr-namespace:Xceed.Wpf.AvalonDock;assembly=Xceed.Wpf.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:avalonDockConverters="clr-namespace:Xceed.Wpf.AvalonDock.Converters;assembly=Xceed.Wpf.AvalonDock"
xmlns:avalonDockProperties="clr-namespace:Xceed.Wpf.AvalonDock.Properties;assembly=Xceed.Wpf.AvalonDock">
xmlns:shell="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDock="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDockLayout="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDockControls="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDockConverters="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:avalonDockProperties="http://schemas.xceed.com/wpf/xaml/avalondock">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Brushes.xaml" />
@ -41,6 +42,10 @@
<avalonDockControls:LayoutDocumentControl Model="{Binding}" />
</DataTemplate>
<DataTemplate x:Key="AnchorablePaneControlContentTemplate">
<avalonDockControls:LayoutAnchorableControl Model="{Binding}" />
</DataTemplate>
<Style x:Key="AvalonDock_ThemeVS2010_ToolButtonStyle"
TargetType="ToggleButton">
@ -146,7 +151,8 @@
IsItemsHost="true"
Margin="2,0,2,0"
Grid.Row="0"
KeyboardNavigation.TabIndex="1" />
KeyboardNavigation.TabIndex="1"
KeyboardNavigation.DirectionalNavigation="Cycle" />
<avalonDockControls:DropDownButton x:Name="MenuDropDownButton"
Style="{StaticResource AvalonDock_ThemeVS2010_ToolButtonStyle}"
Focusable="False"
@ -190,6 +196,7 @@
Padding="0,1,0,2">
<ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="0,2,0,2"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
@ -275,8 +282,7 @@
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="1,1,1,0"
CornerRadius="2,2,0,0"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}">
Background="{TemplateBinding Background}">
<ContentPresenter x:Name="Content"
ContentSource="Header"
HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"
@ -411,6 +417,7 @@
KeyboardNavigation.TabNavigation="Cycle">
<ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
@ -419,6 +426,7 @@
IsItemsHost="true"
Grid.Row="1"
KeyboardNavigation.TabIndex="1"
KeyboardNavigation.DirectionalNavigation="Cycle"
Panel.ZIndex="1" />
</Grid>
<ControlTemplate.Triggers>
@ -459,8 +467,7 @@
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="1,0,1,1"
CornerRadius="0,0,2,2"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}">
Background="{TemplateBinding Background}">
<ContentPresenter x:Name="Content"
ContentSource="Header"
HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"
@ -532,13 +539,9 @@
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<avalonDockControls:LayoutAnchorableControl Model="{Binding}" />
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate"
Value="{StaticResource AnchorablePaneControlContentTemplate}" />
</Style>
<Style TargetType="avalonDockControls:AnchorablePaneTitle">
@ -722,8 +725,8 @@
Padding="2">
<ContentPresenter TextElement.Foreground="{DynamicResource AvalonDock_ThemeVS2010_BaseColor2}"
Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}"
ContentTemplateSelector="{Binding AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" />
ContentTemplate="{Binding Model.Root.Manager.AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Side"
@ -1274,12 +1277,14 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutDocumentTabItem}">
<!--Use a transparent background to hit for contextMenu popup-->
<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}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="0,2,0,1">
Margin="{Binding Padding, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@ -1289,8 +1294,8 @@
<Border Grid.ColumnSpan="3"
Background="Transparent" />
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding DocumentHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}"
ContentTemplateSelector="{Binding DocumentHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" />
ContentTemplate="{Binding Root.Manager.DocumentHeaderTemplate, Mode=OneWay}"
ContentTemplateSelector="{Binding Root.Manager.DocumentHeaderTemplateSelector, Mode=OneWay}" />
<!-- Close button should be moved out to the container style -->
<Button x:Name="DocumentCloseButton"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
@ -1371,19 +1376,18 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutAnchorableTabItem}">
<!--Use a transparent background to hit for contextMenu popup-->
<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}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
BorderThickness="{TemplateBinding BorderThickness}"
Margin="{Binding Padding, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}">
<Grid>
<ContentPresenter Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding AnchorableHeaderTemplate, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}"
ContentTemplateSelector="{Binding AnchorableHeaderTemplateSelector, Mode=OneWay, RelativeSource={RelativeSource AncestorType={x:Type avalonDock:DockingManager}, Mode=FindAncestor}}" />
<avalonDockControls:DropDownControlArea Grid.Column="0"
DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=Model, RelativeSource={RelativeSource TemplatedParent}}" >
</avalonDockControls:DropDownControlArea>
ContentTemplate="{Binding Root.Manager.AnchorableHeaderTemplate, Mode=OneWay}"
ContentTemplateSelector="{Binding Root.Manager.AnchorableHeaderTemplateSelector, Mode=OneWay}" />
</Grid>
</Border>
</avalonDockControls:DropDownControlArea>
@ -1463,100 +1467,102 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutDocumentFloatingWindowControl}">
<Grid>
<Border x:Name="WindowBorder"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid Margin="3">
<Grid.RowDefinitions>
<RowDefinition MinHeight="18"
Height="Auto"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border x:Name="Header"
Padding="2,0,2,0">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ContentPresenter Content="{Binding Model.RootDocument, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.DocumentTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.DocumentTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
<avalonDockControls:DropDownButton x:Name="ContextMenuDropdownButton"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Style="{StaticResource AvalonDock_ThemeVS2010_ToolButtonStyle}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.DocumentContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=RootDocumentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu.png"
Width="13" >
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding Path=RootDocumentLayoutItem.CloseCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_Close}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose.png"
Width="13" >
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1" />
</Grid>
</Border>
</Grid>
<AdornerDecorator>
<Grid>
<Border x:Name="WindowBorder"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid Margin="3">
<Grid.RowDefinitions>
<RowDefinition MinHeight="18"
Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border x:Name="Header"
Padding="2,0,2,0">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ContentPresenter Content="{Binding Model.RootDocument, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.DocumentTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.DocumentTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
<avalonDockControls:DropDownButton x:Name="ContextMenuDropdownButton"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Style="{StaticResource AvalonDock_ThemeVS2010_ToolButtonStyle}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.DocumentContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=RootDocumentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu.png"
Width="13">
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding Path=RootDocumentLayoutItem.CloseCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Document_Close}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose.png"
Width="13">
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1" />
</Grid>
</Border>
</Grid>
</AdornerDecorator>
<ControlTemplate.Triggers>
<Trigger Property="WindowState"
Value="Maximized">
@ -1687,117 +1693,119 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type avalonDockControls:LayoutAnchorableFloatingWindowControl}">
<Grid>
<Border x:Name="WindowBorder"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="18"
Height="Auto"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border x:Name="Header"
CornerRadius="1,1,0,0"
Padding="2,0,2,0"
TextElement.Foreground="{DynamicResource AvalonDock_ThemeVS2010_BaseColor2}"
Background="{DynamicResource AvalonDock_ThemeVS2010_BaseColor16}">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}">
<avalonDockControls:DropDownControlArea DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter Content="{Binding Model.SinglePane.SelectedContent, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.AnchorableTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
</avalonDockControls:DropDownControlArea>
</Border>
<avalonDockControls:DropDownButton x:Name="SinglePaneContextMenu"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeVS2010_ToolButtonStyle}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu.png"
Width="13" >
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore.png"
Width="13" >
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding HideWindowCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_BtnClose_Hint}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose.png"
Width="13" >
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1" />
</Grid>
</Border>
</Grid>
<AdornerDecorator>
<Grid>
<Border x:Name="WindowBorder"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="18"
Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border x:Name="Header"
CornerRadius="1,1,0,0"
Padding="2,0,2,0"
TextElement.Foreground="{DynamicResource AvalonDock_ThemeVS2010_BaseColor2}"
Background="{DynamicResource AvalonDock_ThemeVS2010_BaseColor16}">
<Grid UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}">
<avalonDockControls:DropDownControlArea DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter Content="{Binding Model.SinglePane.SelectedContent, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplate="{Binding Model.Root.Manager.AnchorableTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}"
ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableTitleTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" />
</avalonDockControls:DropDownControlArea>
</Border>
<avalonDockControls:DropDownButton x:Name="SinglePaneContextMenu"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Visibility="{Binding Path=Model.IsSinglePane, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeVS2010_ToolButtonStyle}"
Focusable="False"
Grid.Column="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
DropDownContextMenuDataContext="{Binding Path=SingleContentLayoutItem, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_CxMenu_Hint}">
<Image x:Name="PART_ImgPinMenu"
Stretch="None"
Source="Images/PinMenu.png"
Width="13">
</Image>
</avalonDockControls:DropDownButton>
<Button x:Name="PART_PinMaximize"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
Command="{x:Static shell:SystemCommands.MaximizeWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Maximize}"
Grid.Column="2">
<Image x:Name="PART_ImgPinMaximize"
Source="Images/PinMaximize.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinRestore"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Visibility="{Binding IsMaximized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BoolToVisibilityConverter}}"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Command="{x:Static shell:SystemCommands.RestoreWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Window_Restore}"
Grid.Column="2">
<Image x:Name="PART_ImgPinRestore"
Source="Images/PinRestore.png"
Width="13">
</Image>
</Button>
<Button x:Name="PART_PinClose"
shell:WindowChrome.IsHitTestVisibleInChrome="True"
Focusable="False"
Style="{StaticResource AvalonDock_ThemeVS2010_ButtonStyle}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Command="{Binding HideWindowCommand, RelativeSource={RelativeSource TemplatedParent}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_BtnClose_Hint}"
Grid.Column="3">
<Image x:Name="PART_ImgPinClose"
Source="Images/PinClose.png"
Width="13">
</Image>
</Button>
</Grid>
</Border>
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Row="1" />
</Grid>
</Border>
</Grid>
</AdornerDecorator>
<ControlTemplate.Triggers>
<Trigger Property="WindowState"
Value="Maximized">

24
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/VS2010Theme.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -21,13 +22,16 @@ using System.Text;
namespace Xceed.Wpf.AvalonDock.Themes
{
public class VS2010Theme : Theme
public class VS2010Theme : Theme
{
public override Uri GetResourceUri()
{
public override Uri GetResourceUri()
{
return new Uri(
"/Xceed.Wpf.AvalonDock.Themes.VS2010;component/Theme.xaml",
UriKind.Relative);
}
string assemblyName = "Xceed.Wpf.AvalonDock.Themes.VS2010";
return new Uri(
"/" + assemblyName + ";component/Theme.xaml",
UriKind.Relative );
}
}
}

14
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Xceed.Wpf.AvalonDock.Themes.VS2010.csproj

@ -135,11 +135,11 @@
<Resource Include="Images\PinRestore_Black.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
</Project>

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Commands/RelayCommand.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneControlOverlayArea.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneDropTarget.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneTabPanel.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneTitle.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AutoHideWindowManager.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/BindingHelper.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/ContextMenuEx.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DockingManagerDropTarget.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DockingManagerOverlayArea.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneControlOverlayArea.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropAsAnchorableTarget.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropTarget.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneGroupDropTarget.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

13
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneTabPanel.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -37,8 +38,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
protected override Size MeasureOverride( Size availableSize )
{
var visibleChildren = Children.Cast<UIElement>().Where( ch => ch.Visibility != System.Windows.Visibility.Collapsed );
Size desideredSize = new Size();
foreach( FrameworkElement child in Children )
{
@ -58,10 +57,10 @@ namespace Xceed.Wpf.AvalonDock.Controls
var skipAllOthers = false;
foreach( TabItem doc in visibleChildren )
{
var layoutContent = doc.Content as LayoutContent;
if( skipAllOthers || offset + doc.DesiredSize.Width > finalSize.Width )
{
if( layoutContent.IsSelected && !doc.IsVisible )
var layoutContent = doc.Content as LayoutContent;
if( (layoutContent != null) && layoutContent.IsSelected && !doc.IsVisible )
{
var parentContainer = layoutContent.Parent as ILayoutContainer;
var parentSelector = layoutContent.Parent as ILayoutContentSelector;

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DragService.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropArea.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropDownButton.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

9
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropDownControlArea.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -108,6 +109,8 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
DropDownContextMenu.PlacementTarget = null;
DropDownContextMenu.Placement = PlacementMode.MousePoint;
DropDownContextMenu.HorizontalOffset = 0d;
DropDownContextMenu.VerticalOffset = 0d;
DropDownContextMenu.DataContext = DropDownContextMenuDataContext;
DropDownContextMenu.IsOpen = true;
// e.Handled = true;

12
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTarget.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -21,6 +22,7 @@ using System.Windows;
using System.Windows.Media;
using Xceed.Wpf.AvalonDock.Layout;
using System.Windows.Threading;
using System.Windows.Input;
namespace Xceed.Wpf.AvalonDock.Controls
{
@ -114,6 +116,10 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
Dispatcher.BeginInvoke( new Action( () =>
{
if( ( currentActiveContent.Root != null ) && ( currentActiveContent.Root.Manager != null ) )
{
currentActiveContent.Root.Manager.MoveFocus( new TraversalRequest( FocusNavigationDirection.Next ) );
}
currentActiveContent.IsSelected = false;
currentActiveContent.IsActive = false;
currentActiveContent.IsActive = true;

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTargetBase.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTargetType.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Extentions.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/FocusElementManager.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/FullWeakDictionary.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IDropTarget.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindow.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowArea.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowDropTarget.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowHost.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorGroupControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorSideControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

15
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -152,8 +153,12 @@ namespace Xceed.Wpf.AvalonDock.Controls
protected override void OnGotKeyboardFocus( System.Windows.Input.KeyboardFocusChangedEventArgs e )
{
if( Model != null )
Model.IsActive = true;
var setIsActive = !( ( e.NewFocus != null ) && ( e.OldFocus != null ) && ( e.OldFocus is LayoutFloatingWindowControl ) );
if( setIsActive )
{
if( Model != null )
Model.IsActive = true;
}
base.OnGotKeyboardFocus( e );
}

170
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableFloatingWindowControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -136,24 +137,13 @@ namespace Xceed.Wpf.AvalonDock.Controls
protected override void OnClosed( EventArgs e )
{
var root = Model.Root;
if( root != null )
{
root.Manager.RemoveFloatingWindow( this );
root.CollectGarbage();
}
if( _overlayWindow != null )
{
_overlayWindow.Close();
_overlayWindow = null;
}
base.OnClosed( e );
if( !CloseInitiatedByUser && (root != null) )
{
root.FloatingWindows.Remove( _model );
}
base.OnClosed( e );
_model.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler( _model_PropertyChanged );
IsVisibleChanged -= this.LayoutAnchorableFloatingWindowControl_IsVisibleChanged;
@ -161,17 +151,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
BindingOperations.ClearBinding( this, SingleContentLayoutItemProperty );
}
protected override void OnClosing( System.ComponentModel.CancelEventArgs e )
{
if( CloseInitiatedByUser && !KeepContentVisibleOnClose )
{
e.Cancel = true;
_model.Descendents().OfType<LayoutAnchorable>().ToArray().ForEach<LayoutAnchorable>( ( a ) => a.Hide() );
}
base.OnClosing( e );
}
protected override IntPtr FilterMessage( IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled )
{
switch( msg )
@ -211,6 +190,75 @@ namespace Xceed.Wpf.AvalonDock.Controls
}
}
protected override bool CanClose( object parameter = null )
{
if( this.Model == null )
return false;
var root = this.Model.Root;
if( root == null )
return false;
var manager = root.Manager;
if( manager == null )
return false;
foreach( var anchorable in this.Model.Descendents().OfType<LayoutAnchorable>().ToArray() )
{
if( !anchorable.CanClose )
{
return false;
}
var anchorableLayoutItem = manager.GetLayoutItemFromModel( anchorable ) as LayoutAnchorableItem;
if( anchorableLayoutItem == null ||
anchorableLayoutItem.CloseCommand == null ||
!anchorableLayoutItem.CloseCommand.CanExecute( parameter ) )
{
return false;
}
}
return true;
}
protected override bool CanHide( object parameter = null )
{
if( this.Model == null )
return false;
var root = this.Model.Root;
if( root == null )
return false;
var manager = root.Manager;
if( manager == null )
return false;
foreach( var anchorable in this.Model.Descendents().OfType<LayoutAnchorable>().ToArray() )
{
if( !anchorable.CanHide )
{
return false;
}
var anchorableLayoutItem = manager.GetLayoutItemFromModel( anchorable ) as LayoutAnchorableItem;
if( anchorableLayoutItem == null ||
anchorableLayoutItem.HideCommand == null ||
!anchorableLayoutItem.HideCommand.CanExecute( parameter ) )
{
return false;
}
}
return true;
}
protected override void DoHide()
{
this.OnExecuteHideWindowCommand( null );
}
#endregion
#region Private Methods
@ -288,39 +336,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
private bool CanExecuteHideWindowCommand( object parameter )
{
if( Model == null )
return false;
var root = Model.Root;
if( root == null )
return false;
var manager = root.Manager;
if( manager == null )
return false;
bool canExecute = false;
foreach( var anchorable in this.Model.Descendents().OfType<LayoutAnchorable>().ToArray() )
{
if( !anchorable.CanHide )
{
canExecute = false;
break;
}
var anchorableLayoutItem = manager.GetLayoutItemFromModel( anchorable ) as LayoutAnchorableItem;
if( anchorableLayoutItem == null ||
anchorableLayoutItem.HideCommand == null ||
!anchorableLayoutItem.HideCommand.CanExecute( parameter ) )
{
canExecute = false;
break;
}
canExecute = true;
}
return canExecute;
return this.CanHide( parameter );
}
private void OnExecuteHideWindowCommand( object parameter )
@ -343,39 +359,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
private bool CanExecuteCloseWindowCommand( object parameter )
{
if( Model == null )
return false;
var root = Model.Root;
if( root == null )
return false;
var manager = root.Manager;
if( manager == null )
return false;
bool canExecute = false;
foreach( var anchorable in this.Model.Descendents().OfType<LayoutAnchorable>().ToArray() )
{
if( !anchorable.CanClose )
{
canExecute = false;
break;
}
var anchorableLayoutItem = manager.GetLayoutItemFromModel( anchorable ) as LayoutAnchorableItem;
if( anchorableLayoutItem == null ||
anchorableLayoutItem.CloseCommand == null ||
!anchorableLayoutItem.CloseCommand.CanExecute( parameter ) )
{
canExecute = false;
break;
}
canExecute = true;
}
return canExecute;
return this.CanClose( parameter );
}
private void OnExecuteCloseWindowCommand( object parameter )
@ -437,7 +421,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
if( draggingWindow.Model is LayoutDocumentFloatingWindow )
return _dropAreas;
var rootVisual = ( Content as FloatingWindowContentHost ).RootVisual;
var rootVisual = this.Content as System.Windows.Media.Visual;
foreach( var areaHost in rootVisual.FindVisualChildren<LayoutAnchorablePaneControl>() )
{

18
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableItem.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -288,6 +289,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
_anchorable = model as LayoutAnchorable;
_anchorable.IsVisibleChanged += new EventHandler( _anchorable_IsVisibleChanged );
if( _anchorable.CanClose )
{
_anchorable.SetCanCloseInternal( true );
}
base.Attach( model );
}
@ -340,11 +346,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
protected override void SetDefaultBindings()
{
if( HideCommand == null )
HideCommand = _defaultHideCommand;
this.SetCurrentValue( LayoutAnchorableItem.HideCommandProperty, _defaultHideCommand );
if( AutoHideCommand == null )
AutoHideCommand = _defaultAutoHideCommand;
this.SetCurrentValue( LayoutAnchorableItem.AutoHideCommandProperty, _defaultAutoHideCommand );
if( DockCommand == null )
DockCommand = _defaultDockCommand;
this.SetCurrentValue( LayoutAnchorableItem.DockCommandProperty, _defaultDockCommand );
Visibility = _anchorable.IsVisible ? Visibility.Visible : System.Windows.Visibility.Hidden;
base.SetDefaultBindings();

28
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -19,10 +20,11 @@ using System.Windows.Controls;
using System.Windows;
using System.Windows.Data;
using Xceed.Wpf.AvalonDock.Layout;
using System.Windows.Media;
namespace Xceed.Wpf.AvalonDock.Controls
{
public class LayoutAnchorablePaneControl : TabControl, ILayoutControl//, ILogicalChildrenContainer
public class LayoutAnchorablePaneControl : LayoutCachePaneControl, ILayoutControl//, ILogicalChildrenContainer
{
#region Members
@ -80,9 +82,14 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
base.OnMouseLeftButtonDown( e );
if( !e.Handled && ( _model != null ) && ( _model.SelectedContent != null ) )
var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor<DockingManager>();
if ((this.Model != null) && (this.Model.Root != null) && (this.Model.Root.Manager != null)
&& this.Model.Root.Manager.Equals(parentDockingManager))
{
_model.SelectedContent.IsActive = true;
if (!e.Handled && (_model != null) && (_model.SelectedContent != null) )
{
_model.SelectedContent.IsActive = true;
}
}
}
@ -90,9 +97,14 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
base.OnMouseRightButtonDown( e );
if( !e.Handled && ( _model != null ) && ( _model.SelectedContent != null ) )
var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor<DockingManager>();
if ((this.Model != null) && (this.Model.Root != null) && (this.Model.Root.Manager != null)
&& this.Model.Root.Manager.Equals(parentDockingManager))
{
_model.SelectedContent.IsActive = true;
if (!e.Handled && (_model != null) && (_model.SelectedContent != null))
{
_model.SelectedContent.IsActive = true;
}
}
}

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneGroupControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableTabItem.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAutoHideWindowControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

103
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutCachePaneControl.cs

@ -0,0 +1,103 @@
/*************************************************************************************
Toolkit for WPF
Copyright (C) 2007-2020 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids
***********************************************************************************/
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using Xceed.Wpf.AvalonDock.Layout;
namespace Xceed.Wpf.AvalonDock.Controls
{
public class LayoutCachePaneControl : TabControl
{
#region Constructors
static LayoutCachePaneControl()
{
}
#endregion
#region Properties
#endregion
#region Overrides
protected override void OnSelectionChanged( SelectionChangedEventArgs e )
{
if( this.SelectedIndex < 0 )
e.Handled = true;
base.OnSelectionChanged( e );
}
#endregion
}
}

36
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -21,6 +22,7 @@ using System.Windows.Input;
using Xceed.Wpf.AvalonDock.Layout;
using System.Collections;
using System;
using System.Windows.Media;
namespace Xceed.Wpf.AvalonDock.Controls
{
@ -151,20 +153,34 @@ namespace Xceed.Wpf.AvalonDock.Controls
protected override void OnPreviewGotKeyboardFocus( KeyboardFocusChangedEventArgs e )
{
this.SetIsActive();
var setIsActive = !( (e.NewFocus != null) && (e.OldFocus != null) && (e.OldFocus is LayoutFloatingWindowControl) );
if( setIsActive )
{
this.SetIsActive();
}
base.OnPreviewGotKeyboardFocus( e );
}
protected override void OnMouseLeftButtonDown( MouseButtonEventArgs e )
protected override void OnPreviewMouseLeftButtonDown( MouseButtonEventArgs e )
{
this.SetIsActive();
base.OnMouseLeftButtonDown( e );
var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor<DockingManager>();
if ((this.Model != null) && (this.Model.Root != null) && (this.Model.Root.Manager != null)
&& this.Model.Root.Manager.Equals(parentDockingManager))
{
this.SetIsActive();
}
base.OnPreviewMouseLeftButtonDown( e );
}
protected override void OnMouseRightButtonDown( MouseButtonEventArgs e )
protected override void OnPreviewMouseRightButtonDown( MouseButtonEventArgs e )
{
this.SetIsActive();
base.OnMouseLeftButtonDown( e );
var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor<DockingManager>();
if ((this.Model != null) && (this.Model.Root != null) && (this.Model.Root.Manager != null)
&& this.Model.Root.Manager.Equals(parentDockingManager))
{
this.SetIsActive();
}
base.OnPreviewMouseRightButtonDown( e );
}

45
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentFloatingWindowControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -19,6 +20,7 @@ using Xceed.Wpf.AvalonDock.Layout;
using System.Windows;
using System.Windows.Controls.Primitives;
using Microsoft.Windows.Shell;
using System.Linq;
namespace Xceed.Wpf.AvalonDock.Controls
{
@ -121,18 +123,41 @@ namespace Xceed.Wpf.AvalonDock.Controls
protected override void OnClosed( EventArgs e )
{
var root = Model.Root;
root.Manager.RemoveFloatingWindow( this );
root.CollectGarbage();
base.OnClosed( e );
if( !CloseInitiatedByUser )
_model.RootDocumentChanged -= new EventHandler( _model_RootDocumentChanged );
}
protected override bool CanClose( object parameter = null )
{
if( this.Model == null )
return false;
var root = this.Model.Root;
if( root == null )
return false;
var manager = root.Manager;
if( manager == null )
return false;
foreach( var document in this.Model.Descendents().OfType<LayoutDocument>().ToArray() )
{
root.FloatingWindows.Remove( _model );
if( !document.CanClose )
{
return false;
}
var documentLayoutItem = manager.GetLayoutItemFromModel( document ) as LayoutDocumentItem;
if( documentLayoutItem == null ||
documentLayoutItem.CloseCommand == null ||
!documentLayoutItem.CloseCommand.CanExecute( parameter ) )
{
return false;
}
}
_model.RootDocumentChanged -= new EventHandler( _model_RootDocumentChanged );
return true;
}
#endregion

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentItem.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

92
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -20,10 +21,11 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using Xceed.Wpf.AvalonDock.Layout;
using System.Windows.Media;
namespace Xceed.Wpf.AvalonDock.Controls
{
public class LayoutDocumentPaneControl : TabControl, ILayoutControl//, ILogicalChildrenContainer
public class LayoutDocumentPaneControl : LayoutCachePaneControl, ILayoutControl//, ILogicalChildrenContainer
{
#region Members
@ -55,32 +57,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Properties
#region Model
public ILayoutElement Model
@ -117,17 +93,30 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
base.OnMouseLeftButtonDown( e );
if( !e.Handled && _model.SelectedContent != null )
_model.SelectedContent.IsActive = true;
var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor<DockingManager>();
if( ( this.Model != null ) && ( this.Model.Root != null ) && ( this.Model.Root.Manager != null )
&& this.Model.Root.Manager.Equals( parentDockingManager ) )
{
if( !e.Handled && ( _model != null ) && ( _model.SelectedContent != null ) )
{
_model.SelectedContent.IsActive = true;
}
}
}
protected override void OnMouseRightButtonDown( System.Windows.Input.MouseButtonEventArgs e )
{
base.OnMouseRightButtonDown( e );
if( !e.Handled && _model.SelectedContent != null )
_model.SelectedContent.IsActive = true;
var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor<DockingManager>();
if( ( this.Model != null ) && ( this.Model.Root != null ) && ( this.Model.Root.Manager != null )
&& this.Model.Root.Manager.Equals( parentDockingManager ) )
{
if( !e.Handled && ( _model != null ) && ( _model.SelectedContent != null ) )
{
_model.SelectedContent.IsActive = true;
}
}
}
@ -137,35 +126,14 @@ namespace Xceed.Wpf.AvalonDock.Controls
private void OnLayoutUpdated( object sender, EventArgs e )
{
var modelWithAtcualSize = _model as ILayoutPositionableElementWithActualSize;
modelWithAtcualSize.ActualWidth = ActualWidth;
modelWithAtcualSize.ActualHeight = ActualHeight;
if( this.IsLoaded )
{
var modelWithAtcualSize = _model as ILayoutPositionableElementWithActualSize;
modelWithAtcualSize.ActualWidth = ActualWidth;
modelWithAtcualSize.ActualHeight = ActualHeight;
}
}
#endregion
}
}

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneGroupControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentTabItem.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

321
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -26,6 +27,7 @@ using System.Windows.Media;
using Xceed.Wpf.AvalonDock.Layout;
using System.Windows.Documents;
using Xceed.Wpf.AvalonDock.Themes;
using Standard;
namespace Xceed.Wpf.AvalonDock.Controls
{
@ -87,7 +89,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
/// IsContentImmutable Dependency Property
/// </summary>
public static readonly DependencyProperty IsContentImmutableProperty = DependencyProperty.Register( "IsContentImmutable", typeof( bool ), typeof( LayoutFloatingWindowControl ),
new FrameworkPropertyMetadata( (bool)false ) );
new FrameworkPropertyMetadata( ( bool )false ) );
/// <summary>
/// Gets/sets the IsContentImmutable property. This dependency property
@ -97,7 +99,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
get
{
return (bool)GetValue( IsContentImmutableProperty );
return ( bool )GetValue( IsContentImmutableProperty );
}
private set
{
@ -221,13 +223,16 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
if( !_isInternalChange )
{
if( WindowState == WindowState.Maximized )
if( this.WindowState == WindowState.Maximized )
{
UpdateMaximizedState( true );
this.UpdateMaximizedState( true );
}
else
{
WindowState = IsMaximized ? WindowState.Maximized : WindowState.Normal;
if( this.IsMaximized )
{
this.WindowState = WindowState.Maximized;
}
}
}
@ -240,13 +245,37 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Overrides
protected override void OnClosing( System.ComponentModel.CancelEventArgs e )
{
if( this.CloseInitiatedByUser && !this.KeepContentVisibleOnClose )
{
// model.CanClose is false, can we hide ?
if( !this.CanClose() )
{
// Cancel the closing because we are hiding or nothing to do on (Alt + F4).
e.Cancel = true;
if( this.CanHide() )
{
// Just hiding.
this.DoHide();
}
}
}
base.OnClosing( e );
}
protected override void OnClosed( EventArgs e )
{
if( Content != null )
var root = this.Model.Root;
if( root != null )
{
var host = Content as FloatingWindowContentHost;
host.Dispose();
root.Manager.RemoveFloatingWindow( this );
root.CollectGarbage();
}
if( this.Content != null )
{
if( _hwndSrc != null )
{
_hwndSrc.RemoveHook( _hwndSrcHook );
@ -256,6 +285,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
}
base.OnClosed( e );
if( !this.CloseInitiatedByUser && ( root != null ) )
{
root.FloatingWindows.Remove( this.Model as LayoutFloatingWindow );
}
}
protected override void OnInitialized( EventArgs e )
@ -272,6 +306,30 @@ namespace Xceed.Wpf.AvalonDock.Controls
base.OnInitialized( e );
}
protected override void OnPreviewKeyDown( KeyEventArgs e )
{
if( Keyboard.IsKeyDown( Key.LeftCtrl ) || Keyboard.IsKeyDown( Key.RightCtrl ) )
{
if( e.IsDown && e.Key == Key.Tab )
{
if( ( this.Model != null ) && ( this.Model.Root != null ) )
{
var manager = this.Model.Root.Manager;
if( manager != null )
{
if( !manager.IsNavigatorWindowActive )
{
manager.ShowNavigatorWindow();
e.Handled = true;
}
}
}
}
}
base.OnPreviewKeyDown( e );
}
#endregion
@ -314,6 +372,20 @@ namespace Xceed.Wpf.AvalonDock.Controls
}
}
protected virtual bool CanClose( object parameter = null )
{
return false;
}
protected virtual bool CanHide( object parameter = null )
{
return false;
}
protected virtual void DoHide()
{
}
internal void AttachDrag( bool onActivated = true )
{
if( onActivated )
@ -335,6 +407,34 @@ namespace Xceed.Wpf.AvalonDock.Controls
switch( msg )
{
case Win32Helper.NCCALCSIZE:
if( wParam != IntPtr.Zero )
{
handled = true;
var client = (RECT)Marshal.PtrToStructure( lParam, typeof( RECT ) );
client.Bottom -= 1;
Marshal.StructureToPtr( client, lParam, false );
}
break;
//case Win32Helper.WM_NCHITTEST:
// {
// handled = true;
// //var htLocation = DefWindowProc( hwnd, msg, wParam, lParam ).ToInt32();
// //switch( htLocation )
// //{
// // case (int)HitTestResult.HTBOTTOM:
// // case (int)HitTestResult.HTBOTTOMLEFT:
// // case (int)HitTestResult.HTBOTTOMRIGHT:
// // case (int)HitTestResult.HTLEFT:
// // case (int)HitTestResult.HTRIGHT:
// // case (int)HitTestResult.HTTOP:
// // case (int)HitTestResult.HTTOPLEFT:
// // case (int)HitTestResult.HTTOPRIGHT:
// // htLocation = (int)HitTestResult.HTBORDER;
// }
// break;
case Win32Helper.WM_ACTIVATE:
if( ( (int)wParam & 0xFFFF ) == Win32Helper.WA_INACTIVE )
{
@ -413,7 +513,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
if( lfwc.IsLoaded && lfwc.IsContentImmutable )
return lfwc.Content;
return new FloatingWindowContentHost( sender as LayoutFloatingWindowControl ) { Content = content as UIElement };
return content;
}
return null;
}
@ -507,202 +607,5 @@ namespace Xceed.Wpf.AvalonDock.Controls
}
#endregion
#region Internal Classes
protected internal class FloatingWindowContentHost : HwndHost
{
#region Members
private LayoutFloatingWindowControl _owner;
private HwndSource _wpfContentHost = null;
private Border _rootPresenter = null;
private DockingManager _manager = null;
#endregion
#region Constructors
public FloatingWindowContentHost( LayoutFloatingWindowControl owner )
{
_owner = owner;
var manager = _owner.Model.Root.Manager;
var binding = new Binding( "SizeToContent" ) { Source = _owner };
BindingOperations.SetBinding( this, FloatingWindowContentHost.SizeToContentProperty, binding );
}
#endregion
#region Properties
#region RootVisual
public Visual RootVisual
{
get
{
return _rootPresenter;
}
}
#endregion
#region Content
/// <summary>
/// Content Dependency Property
/// </summary>
public static readonly DependencyProperty ContentProperty = DependencyProperty.Register( "Content", typeof( UIElement ), typeof( FloatingWindowContentHost ),
new FrameworkPropertyMetadata( ( UIElement )null, new PropertyChangedCallback( OnContentChanged ) ) );
/// <summary>
/// Gets or sets the Content property. This dependency property
/// indicates ....
/// </summary>
public UIElement Content
{
get
{
return ( UIElement )GetValue( ContentProperty );
}
set
{
SetValue( ContentProperty, value );
}
}
/// <summary>
/// Handles changes to the Content property.
/// </summary>
private static void OnContentChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{
( ( FloatingWindowContentHost )d ).OnContentChanged( (UIElement)e.OldValue, (UIElement)e.NewValue );
}
/// <summary>
/// Provides derived classes an opportunity to handle changes to the Content property.
/// </summary>
protected virtual void OnContentChanged( UIElement oldValue, UIElement newValue )
{
if( _rootPresenter != null )
_rootPresenter.Child = Content;
var oldContent = oldValue as FrameworkElement;
if( oldContent != null )
{
oldContent.SizeChanged -= this.Content_SizeChanged;
}
var newContent = newValue as FrameworkElement;
if( newContent != null )
{
newContent.SizeChanged += this.Content_SizeChanged;
}
}
#endregion
#region SizeToContent
/// <summary>
/// SizeToContent Dependency Property
/// </summary>
public static readonly DependencyProperty SizeToContentProperty = DependencyProperty.Register( "SizeToContent", typeof( SizeToContent ), typeof( FloatingWindowContentHost ),
new FrameworkPropertyMetadata( SizeToContent.Manual, new PropertyChangedCallback( OnSizeToContentChanged ) ) );
/// <summary>
/// Gets or sets the SizeToContent property.
/// </summary>
public SizeToContent SizeToContent
{
get
{
return (SizeToContent)GetValue( SizeToContentProperty );
}
set
{
SetValue( SizeToContentProperty, value );
}
}
/// <summary>
/// Handles changes to the SizeToContent property.
/// </summary>
private static void OnSizeToContentChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{
( (FloatingWindowContentHost)d ).OnSizeToContentChanged( (SizeToContent)e.OldValue, (SizeToContent)e.NewValue );
}
/// <summary>
/// Provides derived classes an opportunity to handle changes to the SizeToContent property.
/// </summary>
protected virtual void OnSizeToContentChanged( SizeToContent oldValue, SizeToContent newValue )
{
if( _wpfContentHost != null )
{
_wpfContentHost.SizeToContent = newValue;
}
}
#endregion
#endregion
#region Overrides
protected override System.Runtime.InteropServices.HandleRef BuildWindowCore( System.Runtime.InteropServices.HandleRef hwndParent )
{
_wpfContentHost = new HwndSource( new HwndSourceParameters()
{
ParentWindow = hwndParent.Handle,
WindowStyle = Win32Helper.WS_CHILD | Win32Helper.WS_VISIBLE | Win32Helper.WS_CLIPSIBLINGS | Win32Helper.WS_CLIPCHILDREN,
Width = 1,
Height = 1
} );
_rootPresenter = new Border() { Child = new AdornerDecorator() { Child = Content }, Focusable = true };
_rootPresenter.SetBinding( Border.BackgroundProperty, new Binding( "Background" ) { Source = _owner } );
_wpfContentHost.RootVisual = _rootPresenter;
_manager = _owner.Model.Root.Manager;
_manager.InternalAddLogicalChild( _rootPresenter );
return new HandleRef( this, _wpfContentHost.Handle );
}
protected override void DestroyWindowCore( HandleRef hwnd )
{
_manager.InternalRemoveLogicalChild( _rootPresenter );
if( _wpfContentHost != null )
{
_wpfContentHost.Dispose();
_wpfContentHost = null;
}
}
protected override Size MeasureOverride( Size constraint )
{
if( Content == null )
return base.MeasureOverride( constraint );
Content.Measure( constraint );
return Content.DesiredSize;
}
#endregion
#region Event Handlers
private void Content_SizeChanged( object sender, SizeChangedEventArgs e )
{
this.InvalidateMeasure();
this.InvalidateArrange();
}
#endregion
}
#endregion
}
}

23
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -413,9 +414,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
if( prevChildModel.DockWidth.IsStar )
{
var width = prevChildModel.DockWidth.Value * ( prevChildActualSize.Width + delta ) / prevChildActualSize.Width;
var widthToSet = Math.Max( width, prevChildModel.DockMinWidth );
prevChildModel.DockWidth = new GridLength( widthToSet, GridUnitType.Star );
prevChildModel.DockWidth = new GridLength( prevChildActualSize.Width + delta, GridUnitType.Star );
}
else
{
@ -429,9 +428,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
if( nextChildModel.DockWidth.IsStar )
{
var width = nextChildModel.DockWidth.Value * ( nextChildActualSize.Width - delta ) / nextChildActualSize.Width;
var widthToSet = Math.Max( width, nextChildModel.DockMinWidth );
nextChildModel.DockWidth = new GridLength( widthToSet, GridUnitType.Star );
nextChildModel.DockWidth = new GridLength( nextChildActualSize.Width - delta, GridUnitType.Star );
}
else
{
@ -446,9 +443,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
if( prevChildModel.DockHeight.IsStar )
{
var height = prevChildModel.DockHeight.Value * ( prevChildActualSize.Height + delta ) / prevChildActualSize.Height;
var heightToSet = Math.Max( height, prevChildModel.DockMinHeight );
prevChildModel.DockHeight = new GridLength( heightToSet, GridUnitType.Star );
prevChildModel.DockHeight = new GridLength( prevChildActualSize.Height + delta, GridUnitType.Star );
}
else
{
@ -462,9 +457,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
if( nextChildModel.DockHeight.IsStar )
{
var height = nextChildModel.DockHeight.Value * ( nextChildActualSize.Height - delta ) / nextChildActualSize.Height;
var heightToSet = Math.Max( height, nextChildModel.DockMinHeight );
nextChildModel.DockHeight = new GridLength( heightToSet, GridUnitType.Star );
nextChildModel.DockHeight = new GridLength( nextChildActualSize.Height - delta, GridUnitType.Star );
}
else
{

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridResizerControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

33
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutItem.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -346,6 +347,12 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region CanClose
/// <summary>
@ -1153,25 +1160,25 @@ namespace Xceed.Wpf.AvalonDock.Controls
protected virtual void SetDefaultBindings()
{
if( CloseCommand == null )
CloseCommand = _defaultCloseCommand;
this.SetCurrentValue( LayoutItem.CloseCommandProperty, _defaultCloseCommand );
if( FloatCommand == null )
FloatCommand = _defaultFloatCommand;
this.SetCurrentValue( LayoutItem.FloatCommandProperty, _defaultFloatCommand );
if( DockAsDocumentCommand == null )
DockAsDocumentCommand = _defaultDockAsDocumentCommand;
this.SetCurrentValue( LayoutItem.DockAsDocumentCommandProperty, _defaultDockAsDocumentCommand );
if( CloseAllButThisCommand == null )
CloseAllButThisCommand = _defaultCloseAllButThisCommand;
this.SetCurrentValue( LayoutItem.CloseAllButThisCommandProperty, _defaultCloseAllButThisCommand );
if( CloseAllCommand == null )
CloseAllCommand = _defaultCloseAllCommand;
this.SetCurrentValue( LayoutItem.CloseAllCommandProperty, _defaultCloseAllCommand );
if( ActivateCommand == null )
ActivateCommand = _defaultActivateCommand;
this.SetCurrentValue( LayoutItem.ActivateCommandProperty, _defaultActivateCommand );
if( NewVerticalTabGroupCommand == null )
NewVerticalTabGroupCommand = _defaultNewVerticalTabGroupCommand;
this.SetCurrentValue( LayoutItem.NewVerticalTabGroupCommandProperty, _defaultNewVerticalTabGroupCommand );
if( NewHorizontalTabGroupCommand == null )
NewHorizontalTabGroupCommand = _defaultNewHorizontalTabGroupCommand;
this.SetCurrentValue( LayoutItem.NewHorizontalTabGroupCommandProperty, _defaultNewHorizontalTabGroupCommand );
if( MoveToNextTabGroupCommand == null )
MoveToNextTabGroupCommand = _defaultMoveToNextTabGroupCommand;
this.SetCurrentValue( LayoutItem.MoveToNextTabGroupCommandProperty, _defaultMoveToNextTabGroupCommand );
if( MoveToPreviousTabGroupCommand == null )
MoveToPreviousTabGroupCommand = _defaultMoveToPreviousTabGroupCommand;
this.SetCurrentValue( LayoutItem.MoveToPreviousTabGroupCommandProperty, _defaultMoveToPreviousTabGroupCommand );
IsSelected = LayoutElement.IsSelected;

15
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutPanelControl.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -65,9 +66,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
// childPositionableModel.DockWidth = new GridLength( 1.0, GridUnitType.Star );
}
else if( childPositionableModel != null && childPositionableModel.DockWidth.IsStar )
else if( (childPositionableModel != null) && childPositionableModel.DockWidth.IsStar )
{
var childPositionableModelWidthActualSize = childPositionableModel as ILayoutPositionableElementWithActualSize;
if( childPositionableModelWidthActualSize.ActualWidth == 0d )
continue;
var widthToSet = Math.Max( childPositionableModelWidthActualSize.ActualWidth, childPositionableModel.DockMinWidth );
@ -105,9 +108,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
//childPositionableModel.DockHeight = new GridLength( 1.0, GridUnitType.Star );
}
else if( childPositionableModel != null && childPositionableModel.DockHeight.IsStar )
else if( (childPositionableModel != null) && childPositionableModel.DockHeight.IsStar )
{
var childPositionableModelWidthActualSize = childPositionableModel as ILayoutPositionableElementWithActualSize;
if( childPositionableModelWidthActualSize.ActualHeight == 0d )
continue;
var heightToSet = Math.Max( childPositionableModelWidthActualSize.ActualHeight, childPositionableModel.DockMinHeight );
heightToSet = Math.Min( heightToSet, ActualHeight / 2.0 );

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/MenuItemEx.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

67
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/NavigatorWindow.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
@ -20,6 +21,9 @@ using System.Windows;
using Xceed.Wpf.AvalonDock.Layout;
using Xceed.Wpf.AvalonDock.Themes;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Threading;
using System;
namespace Xceed.Wpf.AvalonDock.Controls
{
@ -56,8 +60,8 @@ namespace Xceed.Wpf.AvalonDock.Controls
_manager = manager;
_internalSetSelectedDocument = true;
this.SetAnchorables( _manager.Layout.Descendents().OfType<LayoutAnchorable>().Where( a => a.IsVisible ).Select( d => ( LayoutAnchorableItem )_manager.GetLayoutItemFromModel( d ) ).ToArray() );
this.SetDocuments( _manager.Layout.Descendents().OfType<LayoutDocument>().OrderByDescending( d => d.LastActivationTimeStamp.GetValueOrDefault() ).Select( d => ( LayoutDocumentItem )_manager.GetLayoutItemFromModel( d ) ).ToArray() );
this.SetAnchorables( _manager.Layout.Descendents().OfType<LayoutAnchorable>().Where( a => a.IsVisible ).Select( d => (LayoutAnchorableItem)_manager.GetLayoutItemFromModel( d ) ).ToArray() );
this.SetDocuments( _manager.Layout.Descendents().OfType<LayoutDocument>().OrderByDescending( d => d.LastActivationTimeStamp.GetValueOrDefault() ).Select( d => (LayoutDocumentItem)_manager.GetLayoutItemFromModel( d ) ).ToArray() );
_internalSetSelectedDocument = false;
if( this.Documents.Length > 1 )
@ -101,7 +105,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
get
{
return ( LayoutDocumentItem[] )GetValue( DocumentsProperty );
return (LayoutDocumentItem[])GetValue( DocumentsProperty );
}
}
@ -113,7 +117,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
/// Anchorables Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey AnchorablesPropertyKey = DependencyProperty.RegisterReadOnly( "Anchorables", typeof( IEnumerable<LayoutAnchorableItem> ), typeof( NavigatorWindow ),
new FrameworkPropertyMetadata( ( IEnumerable<LayoutAnchorableItem> )null ) );
new FrameworkPropertyMetadata( (IEnumerable<LayoutAnchorableItem>)null ) );
public static readonly DependencyProperty AnchorablesProperty = AnchorablesPropertyKey.DependencyProperty;
@ -125,7 +129,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
get
{
return ( IEnumerable<LayoutAnchorableItem> )GetValue( AnchorablesProperty );
return (IEnumerable<LayoutAnchorableItem>)GetValue( AnchorablesProperty );
}
}
@ -137,7 +141,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
/// SelectedDocument Dependency Property
/// </summary>
public static readonly DependencyProperty SelectedDocumentProperty = DependencyProperty.Register( "SelectedDocument", typeof( LayoutDocumentItem ), typeof( NavigatorWindow ),
new FrameworkPropertyMetadata( ( LayoutDocumentItem )null, new PropertyChangedCallback( OnSelectedDocumentChanged ) ) );
new FrameworkPropertyMetadata( (LayoutDocumentItem)null, new PropertyChangedCallback( OnSelectedDocumentChanged ) ) );
/// <summary>
/// Gets or sets the SelectedDocument property. This dependency property
@ -147,7 +151,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
get
{
return ( LayoutDocumentItem )GetValue( SelectedDocumentProperty );
return (LayoutDocumentItem)GetValue( SelectedDocumentProperty );
}
set
{
@ -160,7 +164,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
/// </summary>
private static void OnSelectedDocumentChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{
( ( NavigatorWindow )d ).OnSelectedDocumentChanged( e );
( (NavigatorWindow)d ).OnSelectedDocumentChanged( e );
}
/// <summary>
@ -187,7 +191,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
/// SelectedAnchorable Dependency Property
/// </summary>
public static readonly DependencyProperty SelectedAnchorableProperty = DependencyProperty.Register( "SelectedAnchorable", typeof( LayoutAnchorableItem ), typeof( NavigatorWindow ),
new FrameworkPropertyMetadata( ( LayoutAnchorableItem )null, new PropertyChangedCallback( OnSelectedAnchorableChanged ) ) );
new FrameworkPropertyMetadata( (LayoutAnchorableItem)null, new PropertyChangedCallback( OnSelectedAnchorableChanged ) ) );
/// <summary>
/// Gets or sets the SelectedAnchorable property. This dependency property
@ -197,7 +201,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
get
{
return ( LayoutAnchorableItem )GetValue( SelectedAnchorableProperty );
return (LayoutAnchorableItem)GetValue( SelectedAnchorableProperty );
}
set
{
@ -210,7 +214,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
/// </summary>
private static void OnSelectedAnchorableChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{
( ( NavigatorWindow )d ).OnSelectedAnchorableChanged( e );
( (NavigatorWindow)d ).OnSelectedAnchorableChanged( e );
}
/// <summary>
@ -265,7 +269,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
if( e.Key == System.Windows.Input.Key.Tab )
{
// Jump to next LayoutDocument
if( ( docIndex < ( this.Documents.Length - 1 ) )
if( ( docIndex < ( this.Documents.Length - 1 ) )
|| ( this.Anchorables.Count() == 0 ) )
{
this.SelectNextDocument();
@ -409,6 +413,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
this.SelectedDocument.ActivateCommand.CanExecute( null ) )
{
this.SelectedDocument.ActivateCommand.Execute( null );
this.FocusContent( this.SelectedDocument );
}
if( this.SelectedDocument == null &&
@ -416,6 +421,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
this.SelectedAnchorable.ActivateCommand.CanExecute( null ) )
{
this.SelectedAnchorable.ActivateCommand.Execute( null );
this.FocusContent( this.SelectedAnchorable );
}
e.Handled = true;
@ -475,7 +481,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{
if( _manager.Theme is DictionaryTheme )
{
currentThemeResourceDictionary = ( ( DictionaryTheme )_manager.Theme ).ThemeResourceDictionary;
currentThemeResourceDictionary = ( (DictionaryTheme)_manager.Theme ).ThemeResourceDictionary;
this.Resources.MergedDictionaries.Add( currentThemeResourceDictionary );
}
else
@ -571,15 +577,40 @@ namespace Xceed.Wpf.AvalonDock.Controls
}
}
private void FocusContent( LayoutItem layoutItem )
{
if( ( layoutItem == null ) || ( layoutItem.LayoutElement == null ) )
return;
// Set focus inside selected LayoutItem.
var content = layoutItem.LayoutElement.Content as UIElement;
if( content != null )
{
this.Dispatcher.BeginInvoke( DispatcherPriority.Input, new Action( () =>
{
if( content.Focusable )
{
content.Focus();
}
else
{
content.MoveFocus( new TraversalRequest( FocusNavigationDirection.Next ) );
}
}
) );
}
}
private void OnLoaded( object sender, RoutedEventArgs e )
{
this.Loaded -= new RoutedEventHandler( OnLoaded );
if( ( _documentListBox != null ) && (this.SelectedDocument != null) )
if( ( _documentListBox != null ) && ( this.SelectedDocument != null ) )
{
_documentListBox.Focus();
}
else if( ( _anchorableListBox != null ) && (this.SelectedAnchorable != null) )
else if( ( _anchorableListBox != null ) && ( this.SelectedAnchorable != null ) )
{
_anchorableListBox.Focus();
}

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayArea.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindow.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindowDropTarget.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindowDropTargetType.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/ReentrantFlag.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ComGuids.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Debug.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/DoubleUtil.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/DpiHelper.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ErrorCodes.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/MessageWindow.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/NativeMethods.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ShellProvider.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/StreamHelper.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Utilities.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Verify.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/SystemCommands.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/SystemParameters2.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/WindowChrome.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/WindowChromeWorker.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/TransformExtentions.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WeakDictionary.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WindowActivateEventArgs.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WindowHookHandler.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/ActivateCommandLayoutItemFromLayoutModelConverter.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorSideToAngleConverter.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorSideToOrientationConverter.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorableContextMenuHideVisibilityConverter.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AutoHideCommandLayoutItemFromLayoutModelConverter.cs

@ -2,10 +2,11 @@
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
License (Ms-PL) as published at https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
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,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save