Browse Source

V4.0.2 Released

pull/1669/head 4.0.2
Simon Boucher 5 years ago
parent
commit
59dd599ec0
  1. 4
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml
  2. 4
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Theme.xaml
  3. 4
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Theme.xaml
  4. 80
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropTarget.cs
  5. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableFloatingWindowControl.cs
  6. 30
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs
  7. 3
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutCachePaneControl.cs
  8. 26
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentControl.cs
  9. 3
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentFloatingWindowControl.cs
  10. 30
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneControl.cs
  11. 22
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs
  12. 15
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs
  13. 66
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/DockingManager.cs
  14. 20
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Extentions.cs
  15. 32
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/ILayoutInitialContainer.cs
  16. 25
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutAnchorable.cs
  17. 109
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutContent.cs
  18. 17
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs
  19. 9
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Serialization/LayoutSerializer.cs
  20. 4
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.Designer.cs
  21. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.cs-CZ.resx
  22. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.de.resx
  23. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.es.resx
  24. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.fr.resx
  25. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.hu.resx
  26. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.it.resx
  27. 17
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.Designer.cs
  28. 183
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.resx
  29. 4
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.pt-BR.resx
  30. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.resx
  31. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ro.resx
  32. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ru.resx
  33. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.sv.resx
  34. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.zh-Hans.resx
  35. 1438
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Default.xaml
  36. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinAutoHide_White.png
  37. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinClose_White.png
  38. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinDocMenu_White.png
  39. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMaximize_White.png
  40. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMenu_White.png
  41. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinRestore_White.png
  42. 1422
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/generic.xaml
  43. 31
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Xceed.Wpf.AvalonDock.csproj
  44. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiLineTextEditorView.xaml.txt
  45. 8
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/SwitchPanelView.xaml.txt
  46. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/ThemingAvalonDockView.xaml.txt
  47. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/ThemingDataGridView.xaml.txt
  48. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/ThemingExtendedToolkitView.xaml.txt
  49. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/ThemingListBoxView.xaml.txt
  50. 3
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/WindowContainerView.xaml.txt
  51. 8
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/ZoomboxView.xaml.txt
  52. 35
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/MainWindow.xaml
  53. 8
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Resources/TextBlockStyles.xaml
  54. 3
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/BusyIndicator/Resources/Common.xaml
  55. 8
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Panels/Views/SwitchPanelView.xaml
  56. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/MultiLineTextEditorView.xaml
  57. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingAvalonDockView.xaml
  58. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingDataGridView.xaml
  59. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingExtendedToolkitView.xaml
  60. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingListBoxView.xaml
  61. 3
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Window/Views/WindowContainerView.xaml
  62. 8
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Zoombox/Views/ZoomboxView.xaml
  63. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Images/Delete16_White.png
  64. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Images/Duplicate_White.png
  65. 20
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs
  66. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/VersionResourceDictionary.cs
  67. 5
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimePicker/Implementation/DateTimePicker.cs
  68. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DropDownButton/Implementation/DropDownButton.cs
  69. 5
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Magnifier/Themes/Generic.xaml
  70. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Implementation/MaskedTextBox.cs
  71. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Images/Notes16.png
  72. 14
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Aero2.NormalColor.xaml
  73. 9
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Generic.xaml
  74. 4
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Primitives/DateTimeUpDownBase.cs
  75. 30
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Primitives/Selector.cs
  76. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/ClearFilter16_Green.png
  77. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/ClearFilter16_White.png
  78. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/SortAscending16_White.png
  79. 9
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Implementation/PropertyItem.cs
  80. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bold_White16.png
  81. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bullets_White16.png
  82. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/CenterAlign_White16.png
  83. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/FontColorPicker_White16.png
  84. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Italic_White16.png
  85. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/LeftAlign_White16.png
  86. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Numbering_White16.png
  87. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/RightAlign_White16.png
  88. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/TextHighlightColorPicker_White16.png
  89. BIN
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Underline_White16.png
  90. 4
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/RichTextBoxFormatBarManager.cs
  91. 21
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Themes/Generic.xaml
  92. 30
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Wizard/Implementation/Wizard.cs
  93. 48
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj
  94. 2
      ExtendedWPFToolkitSolution/Xceed.Wpf.Toolkit.sln

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

@ -131,7 +131,6 @@
CornerRadius="2"> CornerRadius="2">
<ContentPresenter x:Name="PART_SelectedContentHost" <ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent" ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border> </Border>
</Border> </Border>
@ -324,7 +323,6 @@
KeyboardNavigation.TabNavigation="Cycle"> KeyboardNavigation.TabNavigation="Cycle">
<ContentPresenter x:Name="PART_SelectedContentHost" <ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent" ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="{TemplateBinding Padding}" Margin="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border> </Border>
@ -509,7 +507,7 @@
HorizontalAlignment="Center" HorizontalAlignment="Center"
Command="{Binding Path=LayoutItem.HideCommand, RelativeSource={RelativeSource TemplatedParent}}" Command="{Binding Path=LayoutItem.HideCommand, RelativeSource={RelativeSource TemplatedParent}}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_BtnClose_Hint}"> ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_Hide}">
<Image x:Name="PART_ImgHidePin" <Image x:Name="PART_ImgHidePin"
Source="Images/PinClose_Dark.png" > Source="Images/PinClose_Dark.png" >
</Image> </Image>

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

@ -163,7 +163,6 @@
Padding="0,1,0,2"> Padding="0,1,0,2">
<ContentPresenter x:Name="PART_SelectedContentHost" <ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent" ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="0,2,0,2" Margin="0,2,0,2"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border> </Border>
@ -334,7 +333,6 @@
KeyboardNavigation.TabNavigation="Cycle"> KeyboardNavigation.TabNavigation="Cycle">
<ContentPresenter x:Name="PART_SelectedContentHost" <ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent" ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="{TemplateBinding Padding}" Margin="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border> </Border>
@ -518,7 +516,7 @@
HorizontalAlignment="Center" HorizontalAlignment="Center"
Command="{Binding Path=LayoutItem.HideCommand, RelativeSource={RelativeSource TemplatedParent}}" Command="{Binding Path=LayoutItem.HideCommand, RelativeSource={RelativeSource TemplatedParent}}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_BtnClose_Hint}"> ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_Hide}">
<Image x:Name="PART_ImgHidePin" <Image x:Name="PART_ImgHidePin"
Source="Images/PinClose.png" > Source="Images/PinClose.png" >
</Image> </Image>

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

@ -196,7 +196,6 @@
Padding="0,1,0,2"> Padding="0,1,0,2">
<ContentPresenter x:Name="PART_SelectedContentHost" <ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent" ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="0,2,0,2" Margin="0,2,0,2"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border> </Border>
@ -417,7 +416,6 @@
KeyboardNavigation.TabNavigation="Cycle"> KeyboardNavigation.TabNavigation="Cycle">
<ContentPresenter x:Name="PART_SelectedContentHost" <ContentPresenter x:Name="PART_SelectedContentHost"
ContentSource="SelectedContent" ContentSource="SelectedContent"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="{TemplateBinding Padding}" Margin="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border> </Border>
@ -605,7 +603,7 @@
HorizontalAlignment="Center" HorizontalAlignment="Center"
Command="{Binding Path=LayoutItem.HideCommand, RelativeSource={RelativeSource TemplatedParent}}" Command="{Binding Path=LayoutItem.HideCommand, RelativeSource={RelativeSource TemplatedParent}}"
Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_BtnClose_Hint}"> ToolTip="{x:Static avalonDockProperties:Resources.Anchorable_Hide}">
<Image x:Name="PART_ImgHidePin" <Image x:Name="PART_ImgHidePin"
Source="Images/PinClose.png" > Source="Images/PinClose.png" >
</Image> </Image>

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

@ -61,6 +61,16 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region DropTargetType.DocumentPaneDockBottom #region DropTargetType.DocumentPaneDockBottom
{ {
var newLayoutDocumentPane = new LayoutDocumentPane( floatingWindow.RootDocument ); var newLayoutDocumentPane = new LayoutDocumentPane( floatingWindow.RootDocument );
var targetPane = targetModel as ILayoutPositionableElement;
if( targetPane != null )
{
// Set the DockWidth of the targetPane and the newLayoutDocumentPane so they both use the same size.
if( targetPane.DockHeight.IsStar )
{
targetPane.DockHeight = new GridLength( targetPane.DockHeight.Value / 2d, GridUnitType.Star );
newLayoutDocumentPane.DockHeight = targetPane.DockHeight;
}
}
var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; var parentModel = targetModel.Parent as LayoutDocumentPaneGroup;
if( parentModel == null ) if( parentModel == null )
@ -97,6 +107,16 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region DropTargetType.DocumentPaneDockTop #region DropTargetType.DocumentPaneDockTop
{ {
var newLayoutDocumentPane = new LayoutDocumentPane( floatingWindow.RootDocument ); var newLayoutDocumentPane = new LayoutDocumentPane( floatingWindow.RootDocument );
var targetPane = targetModel as ILayoutPositionableElement;
if( targetPane != null )
{
// Set the DockWidth of the targetPane and the newLayoutDocumentPane so they both use the same size.
if( targetPane.DockHeight.IsStar )
{
targetPane.DockHeight = new GridLength( targetPane.DockHeight.Value / 2d, GridUnitType.Star );
newLayoutDocumentPane.DockHeight = targetPane.DockHeight;
}
}
var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; var parentModel = targetModel.Parent as LayoutDocumentPaneGroup;
if( parentModel == null ) if( parentModel == null )
@ -133,6 +153,16 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region DropTargetType.DocumentPaneDockLeft #region DropTargetType.DocumentPaneDockLeft
{ {
var newLayoutDocumentPane = new LayoutDocumentPane( floatingWindow.RootDocument ); var newLayoutDocumentPane = new LayoutDocumentPane( floatingWindow.RootDocument );
var targetPane = targetModel as ILayoutPositionableElement;
if( targetPane != null )
{
// Set the DockWidth of the targetPane and the newLayoutDocumentPane so they both use the same size.
if( targetPane.DockWidth.IsStar )
{
targetPane.DockWidth = new GridLength( targetPane.DockWidth.Value / 2d, GridUnitType.Star );
newLayoutDocumentPane.DockWidth = targetPane.DockWidth;
}
}
var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; var parentModel = targetModel.Parent as LayoutDocumentPaneGroup;
if( parentModel == null ) if( parentModel == null )
@ -168,6 +198,16 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region DropTargetType.DocumentPaneDockRight #region DropTargetType.DocumentPaneDockRight
{ {
var newLayoutDocumentPane = new LayoutDocumentPane( floatingWindow.RootDocument ); var newLayoutDocumentPane = new LayoutDocumentPane( floatingWindow.RootDocument );
var targetPane = targetModel as ILayoutPositionableElement;
if( targetPane != null )
{
// Set the DockWidth of the targetPane and the newLayoutDocumentPane so they both use the same size.
if( targetPane.DockWidth.IsStar )
{
targetPane.DockWidth = new GridLength( targetPane.DockWidth.Value / 2d, GridUnitType.Star );
newLayoutDocumentPane.DockWidth = targetPane.DockWidth;
}
}
var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; var parentModel = targetModel.Parent as LayoutDocumentPaneGroup;
if( parentModel == null ) if( parentModel == null )
@ -247,6 +287,16 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; var parentModel = targetModel.Parent as LayoutDocumentPaneGroup;
var newLayoutDocumentPane = new LayoutDocumentPane(); var newLayoutDocumentPane = new LayoutDocumentPane();
var targetPane = targetModel as ILayoutPositionableElement;
if( targetPane != null )
{
// Set the DockWidth of the targetPane and the newLayoutDocumentPane so they both use the same size.
if( targetPane.DockHeight.IsStar )
{
targetPane.DockHeight = new GridLength( targetPane.DockHeight.Value / 2d, GridUnitType.Star );
newLayoutDocumentPane.DockHeight = targetPane.DockHeight;
}
}
if( parentModel == null ) if( parentModel == null )
{ {
@ -286,6 +336,16 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; var parentModel = targetModel.Parent as LayoutDocumentPaneGroup;
var newLayoutDocumentPane = new LayoutDocumentPane(); var newLayoutDocumentPane = new LayoutDocumentPane();
var targetPane = targetModel as ILayoutPositionableElement;
if( targetPane != null )
{
// Set the DockWidth of the targetPane and the newLayoutDocumentPane so they both use the same size.
if( targetPane.DockHeight.IsStar )
{
targetPane.DockHeight = new GridLength( targetPane.DockHeight.Value / 2d, GridUnitType.Star );
newLayoutDocumentPane.DockHeight = targetPane.DockHeight;
}
}
if( parentModel == null ) if( parentModel == null )
{ {
@ -325,6 +385,16 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; var parentModel = targetModel.Parent as LayoutDocumentPaneGroup;
var newLayoutDocumentPane = new LayoutDocumentPane(); var newLayoutDocumentPane = new LayoutDocumentPane();
var targetPane = targetModel as ILayoutPositionableElement;
if( targetPane != null )
{
// Set the DockWidth of the targetPane and the newLayoutDocumentPane so they both use the same size.
if( targetPane.DockWidth.IsStar )
{
targetPane.DockWidth = new GridLength( targetPane.DockWidth.Value / 2d, GridUnitType.Star );
newLayoutDocumentPane.DockWidth = targetPane.DockWidth;
}
}
if( parentModel == null ) if( parentModel == null )
{ {
@ -365,6 +435,16 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; var parentModel = targetModel.Parent as LayoutDocumentPaneGroup;
var newLayoutDocumentPane = new LayoutDocumentPane(); var newLayoutDocumentPane = new LayoutDocumentPane();
var targetPane = targetModel as ILayoutPositionableElement;
if( targetPane != null )
{
// Set the DockWidth of the targetPane and the newLayoutDocumentPane so they both use the same size.
if( targetPane.DockWidth.IsStar )
{
targetPane.DockWidth = new GridLength( targetPane.DockWidth.Value / 2d, GridUnitType.Star );
newLayoutDocumentPane.DockWidth = targetPane.DockWidth;
}
}
if( parentModel == null ) if( parentModel == null )
{ {

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

@ -347,6 +347,8 @@ namespace Xceed.Wpf.AvalonDock.Controls
var anchorableLayoutItem = manager.GetLayoutItemFromModel( anchorable ) as LayoutAnchorableItem; var anchorableLayoutItem = manager.GetLayoutItemFromModel( anchorable ) as LayoutAnchorableItem;
anchorableLayoutItem.HideCommand.Execute( parameter ); anchorableLayoutItem.HideCommand.Execute( parameter );
} }
this.BringFocusOnDockingManager();
} }
#endregion #endregion

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

@ -82,13 +82,17 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
base.OnMouseLeftButtonDown( e ); base.OnMouseLeftButtonDown( e );
var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor<DockingManager>(); if( e.OriginalSource is Visual )
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) ) 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;
}
} }
} }
} }
@ -97,15 +101,19 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
base.OnMouseRightButtonDown( e ); base.OnMouseRightButtonDown( e );
var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor<DockingManager>(); if( e.OriginalSource is Visual )
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)) 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;
}
} }
} }
} }

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

@ -16,9 +16,11 @@
***********************************************************************************/ ***********************************************************************************/
using System.Collections.Generic;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data; using System.Windows.Data;
using System.Linq;
using Xceed.Wpf.AvalonDock.Layout; using Xceed.Wpf.AvalonDock.Layout;
namespace Xceed.Wpf.AvalonDock.Controls namespace Xceed.Wpf.AvalonDock.Controls
@ -96,7 +98,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }

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

@ -163,23 +163,33 @@ namespace Xceed.Wpf.AvalonDock.Controls
protected override void OnPreviewMouseLeftButtonDown( MouseButtonEventArgs e ) protected override void OnPreviewMouseLeftButtonDown( MouseButtonEventArgs e )
{ {
var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor<DockingManager>(); if( e.OriginalSource is Visual )
if ((this.Model != null) && (this.Model.Root != null) && (this.Model.Root.Manager != null)
&& this.Model.Root.Manager.Equals(parentDockingManager))
{ {
this.SetIsActive(); 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 ); base.OnPreviewMouseLeftButtonDown( e );
} }
protected override void OnPreviewMouseRightButtonDown( MouseButtonEventArgs e ) protected override void OnPreviewMouseRightButtonDown( MouseButtonEventArgs e )
{ {
var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor<DockingManager>(); if( e.OriginalSource is Visual )
if ((this.Model != null) && (this.Model.Root != null) && (this.Model.Root.Manager != null)
&& this.Model.Root.Manager.Equals(parentDockingManager))
{ {
this.SetIsActive(); 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 ); base.OnPreviewMouseRightButtonDown( e );
} }

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

@ -59,6 +59,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
get get
{ {
if( ( _model == null ) || ( _model.Root == null ) || ( _model.Root.Manager == null ) )
return null;
return _model.Root.Manager.GetLayoutItemFromModel( _model.RootDocument ); return _model.Root.Manager.GetLayoutItemFromModel( _model.RootDocument );
} }
} }

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

@ -93,28 +93,36 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
base.OnMouseLeftButtonDown( e ); base.OnMouseLeftButtonDown( e );
var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor<DockingManager>(); if( e.OriginalSource is Visual )
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 ) ) 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;
}
} }
} }
} }
protected override void OnMouseRightButtonDown( System.Windows.Input.MouseButtonEventArgs e ) protected override void OnMouseRightButtonDown( System.Windows.Input.MouseButtonEventArgs e )
{ {
base.OnMouseRightButtonDown( e ); base.OnMouseRightButtonDown( e );
var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor<DockingManager>(); if( e.OriginalSource is Visual )
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 ) ) 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;
}
} }
} }
} }

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

@ -290,6 +290,8 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
root.FloatingWindows.Remove( this.Model as LayoutFloatingWindow ); root.FloatingWindows.Remove( this.Model as LayoutFloatingWindow );
} }
this.BringFocusOnDockingManager();
} }
protected override void OnInitialized( EventArgs e ) protected override void OnInitialized( EventArgs e )
@ -502,6 +504,26 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
internal void BringFocusOnDockingManager()
{
// Prevent focus lost on MainWindow when closing floatingWindows.
if( this.Owner != null )
{
this.Owner.Focus();
}
else
{
if( (this.Model != null) && ( this.Model.Root != null) && ( this.Model.Root.Manager != null ) )
{
var firstUIElement = this.Model.Root.Manager.FindVisualChildren<UIElement>().Where( control => control.Focusable ).FirstOrDefault();
if( firstUIElement != null )
{
firstUIElement.Focus();
}
}
}
}
#endregion #endregion
#region Private Methods #region Private Methods

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

@ -394,7 +394,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
trToWnd.Transform( new Point() ); trToWnd.Transform( new Point() );
double delta; double delta;
if( Orientation == System.Windows.Controls.Orientation.Horizontal ) if( Orientation == Orientation.Horizontal )
delta = Canvas.GetLeft( _resizerGhost ) - _initialStartPoint.X; delta = Canvas.GetLeft( _resizerGhost ) - _initialStartPoint.X;
else else
delta = Canvas.GetTop( _resizerGhost ) - _initialStartPoint.Y; delta = Canvas.GetTop( _resizerGhost ) - _initialStartPoint.Y;
@ -406,15 +406,18 @@ namespace Xceed.Wpf.AvalonDock.Controls
var prevChildActualSize = prevChild.TransformActualSizeToAncestor(); var prevChildActualSize = prevChild.TransformActualSizeToAncestor();
var nextChildActualSize = (nextChild != null) ? nextChild.TransformActualSizeToAncestor() : new Size(); var nextChildActualSize = (nextChild != null) ? nextChild.TransformActualSizeToAncestor() : new Size();
var totalActualSize = new Size(prevChildActualSize.Width + nextChildActualSize.Width, prevChildActualSize.Height + nextChildActualSize.Height );
var prevChildModel = ( ILayoutPositionableElement )( prevChild as ILayoutControl ).Model; var prevChildModel = ( ILayoutPositionableElement )( prevChild as ILayoutControl ).Model;
var nextChildModel = (nextChild != null) ? ( ILayoutPositionableElement )( nextChild as ILayoutControl ).Model : null; var nextChildModel = (nextChild != null) ? ( ILayoutPositionableElement )( nextChild as ILayoutControl ).Model : null;
var totalStarSize = new Size( prevChildModel.DockWidth.IsStar && nextChildModel.DockWidth.IsStar ? prevChildModel.DockWidth.Value + nextChildModel.DockWidth.Value : 1d,
prevChildModel.DockHeight.IsStar && nextChildModel.DockHeight.IsStar ? prevChildModel.DockHeight.Value + nextChildModel.DockHeight.Value : 1d );
if( Orientation == System.Windows.Controls.Orientation.Horizontal ) if( Orientation == Orientation.Horizontal )
{ {
if( prevChildModel.DockWidth.IsStar ) if( prevChildModel.DockWidth.IsStar )
{ {
prevChildModel.DockWidth = new GridLength( prevChildActualSize.Width + delta, GridUnitType.Star ); prevChildModel.DockWidth = new GridLength( ((prevChildActualSize.Width + delta) / totalActualSize.Width) * totalStarSize.Width, GridUnitType.Star );
} }
else else
{ {
@ -428,7 +431,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
if( nextChildModel.DockWidth.IsStar ) if( nextChildModel.DockWidth.IsStar )
{ {
nextChildModel.DockWidth = new GridLength( nextChildActualSize.Width - delta, GridUnitType.Star ); nextChildModel.DockWidth = new GridLength( ((nextChildActualSize.Width - delta) / totalActualSize.Width) * totalStarSize.Width, GridUnitType.Star );
} }
else else
{ {
@ -443,7 +446,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
if( prevChildModel.DockHeight.IsStar ) if( prevChildModel.DockHeight.IsStar )
{ {
prevChildModel.DockHeight = new GridLength( prevChildActualSize.Height + delta, GridUnitType.Star ); prevChildModel.DockHeight = new GridLength( ((prevChildActualSize.Height + delta) / totalActualSize.Height) * totalStarSize.Height, GridUnitType.Star );
} }
else else
{ {
@ -457,7 +460,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
{ {
if( nextChildModel.DockHeight.IsStar ) if( nextChildModel.DockHeight.IsStar )
{ {
nextChildModel.DockHeight = new GridLength( nextChildActualSize.Height - delta, GridUnitType.Star ); nextChildModel.DockHeight = new GridLength( ((nextChildActualSize.Height - delta) / totalActualSize.Height) * totalStarSize.Height, GridUnitType.Star );
} }
else else
{ {

66
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/DockingManager.cs

@ -2143,7 +2143,7 @@ namespace Xceed.Wpf.AvalonDock
{ {
newFW.WindowState = WindowState.Maximized; newFW.WindowState = WindowState.Maximized;
} }
} ), DispatcherPriority.Send ); } ), DispatcherPriority.DataBind );
return newFW; return newFW;
} }
@ -2365,7 +2365,7 @@ namespace Xceed.Wpf.AvalonDock
content.IsActive = true; content.IsActive = true;
} }
internal void ShowNavigatorWindow() protected internal virtual void ShowNavigatorWindow()
{ {
if( _navigatorWindow == null ) if( _navigatorWindow == null )
{ {
@ -3259,6 +3259,8 @@ namespace Xceed.Wpf.AvalonDock
contentModelAsAnchorable.IsAutoHidden ) contentModelAsAnchorable.IsAutoHidden )
contentModelAsAnchorable.ToggleAutoHide(); contentModelAsAnchorable.ToggleAutoHide();
this.UpdateStarSize( contentModel );
var parentPane = contentModel.Parent as ILayoutPane; var parentPane = contentModel.Parent as ILayoutPane;
var parentPaneAsPositionableElement = contentModel.Parent as ILayoutPositionableElement; var parentPaneAsPositionableElement = contentModel.Parent as ILayoutPositionableElement;
var parentPaneAsWithActualSize = contentModel.Parent as ILayoutPositionableElementWithActualSize; var parentPaneAsWithActualSize = contentModel.Parent as ILayoutPositionableElementWithActualSize;
@ -3351,6 +3353,66 @@ namespace Xceed.Wpf.AvalonDock
return fwc; return fwc;
} }
private void UpdateStarSize( LayoutContent contentModel )
{
if( contentModel == null )
return;
var parentPane = contentModel.Parent as ILayoutPositionableElement;
if( parentPane != null)
{
// Reset Dock Size of floating LayoutContent
if( parentPane.DockWidth.IsStar )
{
parentPane.DockWidth = new GridLength( 1d, GridUnitType.Star );
}
if( parentPane.DockHeight.IsStar )
{
parentPane.DockHeight = new GridLength( 1d, GridUnitType.Star );
}
var grandParentPaneOrientation = parentPane.Parent as ILayoutOrientableGroup;
var grandParentPane = parentPane.Parent as ILayoutPositionableElement;
if( (grandParentPaneOrientation != null) && (grandParentPane != null) )
{
if( grandParentPaneOrientation.Orientation == Orientation.Horizontal )
{
// Reset Dock Width of remaining LayoutContent
if( grandParentPane.DockWidth.IsStar )
{
var grandParentPaneContainer = parentPane.Parent as ILayoutContainer;
if( grandParentPaneContainer != null )
{
var children = grandParentPaneContainer.Children.Where( child => !child.Equals( parentPane ) ).Cast<ILayoutPositionableElement>().Where( child => child.DockWidth.IsStar );
var childrenTotalWidth = children.Sum( child => child.DockWidth.Value );
foreach( var child in children )
{
child.DockWidth = new GridLength( child.DockWidth.Value / childrenTotalWidth, GridUnitType.Star );
}
}
}
}
else
{
// Reset Dock Height of remaining LayoutContent
if( grandParentPane.DockHeight.IsStar )
{
var grandParentPaneContainer = parentPane.Parent as ILayoutContainer;
if( grandParentPaneContainer != null )
{
var children = grandParentPaneContainer.Children.Where( child => !child.Equals( parentPane ) ).Cast<ILayoutPositionableElement>().Where( child => child.DockHeight.IsStar );
var childrenTotalHeight = children.Sum( child => child.DockHeight.Value );
foreach( var child in children )
{
child.DockHeight = new GridLength( child.DockHeight.Value / childrenTotalHeight, GridUnitType.Star );
}
}
}
}
}
}
}
private void AnchorableContextMenu_Opened( object sender, RoutedEventArgs e ) private void AnchorableContextMenu_Opened( object sender, RoutedEventArgs e )
{ {
var anchorableContextMenu = sender as ContextMenu; var anchorableContextMenu = sender as ContextMenu;

20
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Extentions.cs

@ -113,14 +113,30 @@ namespace Xceed.Wpf.AvalonDock.Layout
if( layoutPanel.Orientation == System.Windows.Controls.Orientation.Horizontal ) if( layoutPanel.Orientation == System.Windows.Controls.Orientation.Horizontal )
{ {
if( currentChildID < 0 ) if( currentChildID < 0 )
{
return AnchorSide.Right; return AnchorSide.Right;
return ( currentChildID <= ( childrenCount / 2 ) ) ? AnchorSide.Left : AnchorSide.Right; }
else
{
if( childrenCount == 1 )
return AnchorSide.Left;
return ( currentChildID < ( childrenCount / 2d ) ) ? AnchorSide.Left : AnchorSide.Right;
}
} }
else else
{ {
if( currentChildID < 0 ) if( currentChildID < 0 )
{
return AnchorSide.Bottom; return AnchorSide.Bottom;
return ( currentChildID <= ( childrenCount / 2 ) ) ? AnchorSide.Top : AnchorSide.Bottom; }
else
{
if( childrenCount == 1 )
return AnchorSide.Top;
return ( currentChildID < ( childrenCount / 2d ) ) ? AnchorSide.Top : AnchorSide.Bottom;
}
} }
} }
} }

32
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/ILayoutInitialContainer.cs

@ -0,0 +1,32 @@
/*************************************************************************************
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
***********************************************************************************/
namespace Xceed.Wpf.AvalonDock.Layout
{
interface ILayoutInitialContainer
{
ILayoutContainer InitialContainer
{
get; set;
}
string InitialContainerId
{
get; set;
}
}
}

25
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutAnchorable.cs

@ -415,14 +415,16 @@ namespace Xceed.Wpf.AvalonDock.Layout
RaisePropertyChanging( "IsHidden" ); RaisePropertyChanging( "IsHidden" );
RaisePropertyChanging( "IsVisible" ); RaisePropertyChanging( "IsVisible" );
//if (Parent is ILayoutPane)
this.InitialContainer = this.PreviousContainer as ILayoutPane;
this.InitialContainerIndex = this.PreviousContainerIndex;
this.InitialContainerId = this.PreviousContainerId;
var parentAsGroup = this.Parent as ILayoutGroup;
this.PreviousContainer = parentAsGroup;
if( parentAsGroup != null )
{ {
var parentAsGroup = Parent as ILayoutGroup; this.PreviousContainerIndex = parentAsGroup.IndexOfChild( this );
PreviousContainer = parentAsGroup;
if( parentAsGroup != null )
{
PreviousContainerIndex = parentAsGroup.IndexOfChild( this );
}
} }
if( this.Root != null ) if( this.Root != null )
{ {
@ -478,8 +480,13 @@ namespace Xceed.Wpf.AvalonDock.Layout
} }
} }
PreviousContainer = null; // When InitialContainer exists, set it to PreviousContainer in order to dock in expected position.
PreviousContainerIndex = -1; this.PreviousContainer = ( this.InitialContainer != null) ? this.InitialContainer : null;
this.PreviousContainerIndex = ( this.InitialContainerIndex != -1 ) ? this.InitialContainerIndex : -1;
this.InitialContainer = null;
this.InitialContainerIndex = -1;
this.InitialContainerId = null;
RaisePropertyChanged( "IsVisible" ); RaisePropertyChanged( "IsVisible" );
RaisePropertyChanged( "IsHidden" ); RaisePropertyChanged( "IsHidden" );

109
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutContent.cs

@ -29,7 +29,7 @@ namespace Xceed.Wpf.AvalonDock.Layout
{ {
[ContentProperty( "Content" )] [ContentProperty( "Content" )]
[Serializable] [Serializable]
public abstract class LayoutContent : LayoutElement, IXmlSerializable, ILayoutElementForFloatingWindow, IComparable<LayoutContent>, ILayoutPreviousContainer public abstract class LayoutContent : LayoutElement, IXmlSerializable, ILayoutElementForFloatingWindow, IComparable<LayoutContent>, ILayoutPreviousContainer, ILayoutInitialContainer
{ {
#region Constructors #region Constructors
@ -311,6 +311,66 @@ namespace Xceed.Wpf.AvalonDock.Layout
#endregion #endregion
#region InitialContainer
[field: NonSerialized]
private ILayoutContainer _initialContainer = null;
[XmlIgnore]
ILayoutContainer ILayoutInitialContainer.InitialContainer
{
get
{
return _initialContainer;
}
set
{
if( _initialContainer != value )
{
_initialContainer = value;
RaisePropertyChanged( "InitialContainer" );
var paneSerializable = _initialContainer as ILayoutPaneSerializable;
if( paneSerializable != null &&
paneSerializable.Id == null )
paneSerializable.Id = Guid.NewGuid().ToString();
}
}
}
internal ILayoutContainer InitialContainer
{
get
{
return ( ( ILayoutInitialContainer )this ).InitialContainer;
}
set
{
( ( ILayoutInitialContainer )this ).InitialContainer = value;
}
}
[XmlIgnore]
string ILayoutInitialContainer.InitialContainerId
{
get;
set;
}
internal string InitialContainerId
{
get
{
return ( ( ILayoutInitialContainer )this ).InitialContainerId;
}
set
{
( ( ILayoutInitialContainer )this ).InitialContainerId = value;
}
}
#endregion
#region PreviousContainerIndex #region PreviousContainerIndex
[field: NonSerialized] [field: NonSerialized]
private int _previousContainerIndex = -1; private int _previousContainerIndex = -1;
@ -333,6 +393,28 @@ namespace Xceed.Wpf.AvalonDock.Layout
#endregion #endregion
#region InitialContainerIndex
[field: NonSerialized]
private int _initialContainerIndex = -1;
[XmlIgnore]
internal int InitialContainerIndex
{
get
{
return _initialContainerIndex;
}
set
{
if( _initialContainerIndex != value )
{
_initialContainerIndex = value;
RaisePropertyChanged( "InitialContainerIndex" );
}
}
}
#endregion
#region LastActivationTimeStamp #region LastActivationTimeStamp
private DateTime? _lastActivationTimeStamp = null; private DateTime? _lastActivationTimeStamp = null;
@ -655,6 +737,10 @@ namespace Xceed.Wpf.AvalonDock.Layout
PreviousContainerId = reader.Value; PreviousContainerId = reader.Value;
if( reader.MoveToAttribute( "PreviousContainerIndex" ) ) if( reader.MoveToAttribute( "PreviousContainerIndex" ) )
PreviousContainerIndex = int.Parse( reader.Value ); PreviousContainerIndex = int.Parse( reader.Value );
if( reader.MoveToAttribute( "InitialContainerId" ) )
InitialContainerId = reader.Value;
if( reader.MoveToAttribute( "InitialContainerIndex" ) )
InitialContainerIndex = int.Parse( reader.Value );
if( reader.MoveToAttribute( "FloatingLeft" ) ) if( reader.MoveToAttribute( "FloatingLeft" ) )
FloatingLeft = double.Parse( reader.Value, CultureInfo.InvariantCulture ); FloatingLeft = double.Parse( reader.Value, CultureInfo.InvariantCulture );
@ -726,6 +812,15 @@ namespace Xceed.Wpf.AvalonDock.Layout
writer.WriteAttributeString( "PreviousContainerIndex", _previousContainerIndex.ToString() ); writer.WriteAttributeString( "PreviousContainerIndex", _previousContainerIndex.ToString() );
} }
} }
if( _initialContainer != null )
{
var paneSerializable = _initialContainer as ILayoutPaneSerializable;
if( paneSerializable != null )
{
writer.WriteAttributeString( "InitialContainerId", paneSerializable.Id );
writer.WriteAttributeString( "InitialContainerIndex", _initialContainerIndex.ToString() );
}
}
} }
@ -856,15 +951,17 @@ namespace Xceed.Wpf.AvalonDock.Layout
InternalDock(); InternalDock();
} }
if( this.Root != null )
Root.CollectGarbage(); {
Root.CollectGarbage();
}
} }
#endregion #endregion
#region Internal Methods #region Internal Methods
@ -908,6 +1005,7 @@ namespace Xceed.Wpf.AvalonDock.Layout
Closing( this, args ); Closing( this, args );
} }
protected virtual void InternalDock() protected virtual void InternalDock()
{ {
} }
@ -930,6 +1028,7 @@ namespace Xceed.Wpf.AvalonDock.Layout
/// Hanlde the Hiding event for the LayoutAnchorable to cancel the hide operation.</remarks> /// Hanlde the Hiding event for the LayoutAnchorable to cancel the hide operation.</remarks>
public event EventHandler<CancelEventArgs> Closing; public event EventHandler<CancelEventArgs> Closing;
#endregion
#endregion
} }
} }

17
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs

@ -440,6 +440,11 @@ namespace Xceed.Wpf.AvalonDock.Layout
{ {
content.PreviousContainer = null; content.PreviousContainer = null;
} }
foreach( var content in this.Descendents().OfType<ILayoutInitialContainer>().Where( c => c.InitialContainer != null &&
( c.InitialContainer.Parent == null || c.InitialContainer.Parent.Root != this ) ) )
{
content.InitialContainer = null;
}
//for each pane that is empty //for each pane that is empty
foreach( var emptyPane in this.Descendents().OfType<ILayoutPane>().Where( p => p.ChildrenCount == 0 ) ) foreach( var emptyPane in this.Descendents().OfType<ILayoutPane>().Where( p => p.ChildrenCount == 0 ) )
@ -462,7 +467,8 @@ namespace Xceed.Wpf.AvalonDock.Layout
continue; continue;
//...if this empty panes is not referenced by anyone, than removes it from its parent container //...if this empty panes is not referenced by anyone, than removes it from its parent container
if( !this.Descendents().OfType<ILayoutPreviousContainer>().Any( c => c.PreviousContainer == emptyPane ) ) if( !this.Descendents().OfType<ILayoutPreviousContainer>().Any( c => c.PreviousContainer == emptyPane )
&& !this.Descendents().OfType<ILayoutInitialContainer>().Any( c => c.InitialContainer == emptyPane ) )
{ {
var parentGroup = emptyPane.Parent as ILayoutContainer; var parentGroup = emptyPane.Parent as ILayoutContainer;
parentGroup.RemoveChild( emptyPane ); parentGroup.RemoveChild( emptyPane );
@ -493,7 +499,8 @@ namespace Xceed.Wpf.AvalonDock.Layout
foreach( var emptyPaneGroup in this.Descendents().OfType<LayoutPanel>().Where( p => p.ChildrenCount == 0 ) ) foreach( var emptyPaneGroup in this.Descendents().OfType<LayoutPanel>().Where( p => p.ChildrenCount == 0 ) )
{ {
//...if this empty layout panel is not referenced by anyone, than removes it from its parent container //...if this empty layout panel is not referenced by anyone, than removes it from its parent container
if( !this.Descendents().OfType<ILayoutPreviousContainer>().Any( c => c.PreviousContainer == emptyPaneGroup ) ) if( !this.Descendents().OfType<ILayoutPreviousContainer>().Any( c => c.PreviousContainer == emptyPaneGroup )
&& !this.Descendents().OfType<ILayoutInitialContainer>().Any( c => c.InitialContainer == emptyPaneGroup ) )
{ {
var parentGroup = emptyPaneGroup.Parent as ILayoutContainer; var parentGroup = emptyPaneGroup.Parent as ILayoutContainer;
parentGroup.RemoveChild( emptyPaneGroup ); parentGroup.RemoveChild( emptyPaneGroup );
@ -509,7 +516,8 @@ namespace Xceed.Wpf.AvalonDock.Layout
foreach( var emptyPaneGroup in this.Descendents().OfType<LayoutFloatingWindow>().Where( p => p.ChildrenCount == 0 ) ) foreach( var emptyPaneGroup in this.Descendents().OfType<LayoutFloatingWindow>().Where( p => p.ChildrenCount == 0 ) )
{ {
//...if this empty floating window is not referenced by anyone, than removes it from its parent container //...if this empty floating window is not referenced by anyone, than removes it from its parent container
if( !this.Descendents().OfType<ILayoutPreviousContainer>().Any( c => c.PreviousContainer == emptyPaneGroup ) ) if( !this.Descendents().OfType<ILayoutPreviousContainer>().Any( c => c.PreviousContainer == emptyPaneGroup )
&& !this.Descendents().OfType<ILayoutInitialContainer>().Any( c => c.InitialContainer == emptyPaneGroup ) )
{ {
var parentGroup = emptyPaneGroup.Parent as ILayoutContainer; var parentGroup = emptyPaneGroup.Parent as ILayoutContainer;
parentGroup.RemoveChild( emptyPaneGroup ); parentGroup.RemoveChild( emptyPaneGroup );
@ -525,7 +533,8 @@ namespace Xceed.Wpf.AvalonDock.Layout
foreach( var emptyPaneGroup in this.Descendents().OfType<LayoutAnchorGroup>().Where( p => p.ChildrenCount == 0 ) ) foreach( var emptyPaneGroup in this.Descendents().OfType<LayoutAnchorGroup>().Where( p => p.ChildrenCount == 0 ) )
{ {
//...if this empty Pane Group is not referenced by anyone, than removes it from its parent container //...if this empty Pane Group is not referenced by anyone, than removes it from its parent container
if( !this.Descendents().OfType<ILayoutPreviousContainer>().Any( c => c.PreviousContainer == emptyPaneGroup ) ) if( !this.Descendents().OfType<ILayoutPreviousContainer>().Any( c => c.PreviousContainer == emptyPaneGroup )
&& !this.Descendents().OfType<ILayoutInitialContainer>().Any( c => c.InitialContainer == emptyPaneGroup ) )
{ {
var parentGroup = emptyPaneGroup.Parent as ILayoutContainer; var parentGroup = emptyPaneGroup.Parent as ILayoutContainer;
parentGroup.RemoveChild( emptyPaneGroup ); parentGroup.RemoveChild( emptyPaneGroup );

9
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Serialization/LayoutSerializer.cs

@ -76,6 +76,15 @@ namespace Xceed.Wpf.AvalonDock.Layout.Serialization
lcToAttach.PreviousContainer = paneContainerToAttach as ILayoutContainer; lcToAttach.PreviousContainer = paneContainerToAttach as ILayoutContainer;
} }
foreach( var lcToAttach in layout.Descendents().OfType<ILayoutInitialContainer>().Where( lc => lc.InitialContainerId != null ) )
{
var paneContainerToAttach = layout.Descendents().OfType<ILayoutPaneSerializable>().FirstOrDefault( lps => lps.Id == lcToAttach.InitialContainerId );
if( paneContainerToAttach == null )
throw new ArgumentException( string.Format( "Unable to find a pane with id ='{0}'", lcToAttach.InitialContainerId ) );
lcToAttach.InitialContainer = paneContainerToAttach as ILayoutContainer;
}
//now fix the content of the layoutcontents //now fix the content of the layoutcontents
foreach( var lcToFix in layout.Descendents().OfType<LayoutAnchorable>().Where( lc => lc.Content == null ).ToArray() ) foreach( var lcToFix in layout.Descendents().OfType<LayoutAnchorable>().Where( lc => lc.Content == null ).ToArray() )

4
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.Designer.cs

@ -36,7 +36,7 @@ namespace Xceed.Wpf.AvalonDock.Properties {
// class via a tool like ResGen or Visual Studio. // class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen // To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project. // with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class Resources { public class Resources {
@ -96,7 +96,7 @@ namespace Xceed.Wpf.AvalonDock.Properties {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Hide. /// Looks up a localized string similar to Hide All.
/// </summary> /// </summary>
public static string Anchorable_BtnClose_Hint { public static string Anchorable_BtnClose_Hint {
get { get {

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.cs-CZ.resx

@ -124,7 +124,7 @@
<value>Skrývat automaticky</value> <value>Skrývat automaticky</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>Skrýt</value> <value>Schovat vše</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Pozice okna</value> <value>Pozice okna</value>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.de.resx

@ -124,7 +124,7 @@
<value>Automatisch im Hintergrund</value> <value>Automatisch im Hintergrund</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>Schließen</value> <value>Versteck alles</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Fensterposition</value> <value>Fensterposition</value>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.es.resx

@ -124,7 +124,7 @@
<value>Esconder Automáticamente</value> <value>Esconder Automáticamente</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>Esconder</value> <value>Ocultar todo</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Posición de Ventana </value> <value>Posición de Ventana </value>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.fr.resx

@ -124,7 +124,7 @@
<value>Cacher Automatiquement</value> <value>Cacher Automatiquement</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>Cacher</value> <value>Cacher Tout</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Position de la Fenêtre</value> <value>Position de la Fenêtre</value>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.hu.resx

@ -127,7 +127,7 @@
<value>Elrejtés</value> <value>Elrejtés</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Elhelyezkedés</value> <value>Rejtsd el mindet</value>
</data> </data>
<data name="Anchorable_Dock" xml:space="preserve"> <data name="Anchorable_Dock" xml:space="preserve">
<value>Dokkolás</value> <value>Dokkolás</value>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.it.resx

@ -124,7 +124,7 @@
<value>Nascondi Automaticamente</value> <value>Nascondi Automaticamente</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>Nascondi</value> <value>Nascondi tutto</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Posizione della Finestra</value> <value>Posizione della Finestra</value>

17
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.Designer.cs

@ -0,0 +1,17 @@
/*************************************************************************************
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
***********************************************************************************/

183
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.resx

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Anchorable_AutoHide" xml:space="preserve">
<value>自動的に隠す</value>
</data>
<data name="Anchorable_BtnAutoHide_Hint" xml:space="preserve">
<value>自動的に隠す</value>
</data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>すべて非表示</value>
</data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>ウィンドウの位置</value>
</data>
<data name="Anchorable_Dock" xml:space="preserve">
<value>ドッキング</value>
</data>
<data name="Anchorable_DockAsDocument" xml:space="preserve">
<value>タブ付きドキュメントとしてドッキング</value>
</data>
<data name="Anchorable_Float" xml:space="preserve">
<value>フローティング</value>
</data>
<data name="Anchorable_Hide" xml:space="preserve">
<value>非表示</value>
</data>
<data name="Document_BtnPinned_Hint" xml:space="preserve">
<value>ピンステータスを切り替える</value>
</data>
<data name="Document_Close" xml:space="preserve">
<value>閉じる</value>
</data>
<data name="Document_CloseAll" xml:space="preserve">
<value>すべて閉じる</value>
</data>
<data name="Document_CloseAllButThis" xml:space="preserve">
<value>このウィンドウ以外すべて閉じる</value>
</data>
<data name="Document_CxMenu_Hint" xml:space="preserve">
<value>ウィンドウの位置</value>
</data>
<data name="Document_DockAsDocument" xml:space="preserve">
<value>タブ付きドキュメントとしてドッキング</value>
</data>
<data name="Document_Float" xml:space="preserve">
<value>フローティング</value>
</data>
<data name="Document_MoveToNextTabGroup" xml:space="preserve">
<value>次のタブグループに移動</value>
</data>
<data name="Document_MoveToPreviousTabGroup" xml:space="preserve">
<value>前のタブグループに移動</value>
</data>
<data name="Document_NewHorizontalTabGroup" xml:space="preserve">
<value>新しい水平タブグループ</value>
</data>
<data name="Document_NewVerticalTabGroup" xml:space="preserve">
<value>新しい垂直タブグループ</value>
</data>
<data name="Window_Maximize" xml:space="preserve">
<value>最大化</value>
</data>
<data name="Window_Restore" xml:space="preserve">
<value>元に戻す</value>
</data>
</root>

4
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.pt-BR.resx

@ -124,7 +124,7 @@
<value>Esconder Automaticamente</value> <value>Esconder Automaticamente</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>Esconder</value> <value>Esconda tudo</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Posição da Janela</value> <value>Posição da Janela</value>
@ -177,4 +177,4 @@
<data name="Window_Restore" xml:space="preserve"> <data name="Window_Restore" xml:space="preserve">
<value>Recuperar</value> <value>Recuperar</value>
</data> </data>
</root> </root>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.resx

@ -124,7 +124,7 @@
<value>Auto Hide</value> <value>Auto Hide</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>Hide</value> <value>Hide All</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Window Position</value> <value>Window Position</value>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ro.resx

@ -124,7 +124,7 @@
<value>Ascunde automat</value> <value>Ascunde automat</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>Ascunde</value> <value>Ascunde tot</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Poziția ferestrei</value> <value>Poziția ferestrei</value>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ru.resx

@ -124,7 +124,7 @@
<value>Скрывать Автоматически</value> <value>Скрывать Автоматически</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>Скрыть</value> <value>Скрыть все</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Положение Окна</value> <value>Положение Окна</value>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.sv.resx

@ -124,7 +124,7 @@
<value>Dölj automatiskt</value> <value>Dölj automatiskt</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>Dölj</value> <value>Göm alla</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>Fönsterposition</value> <value>Fönsterposition</value>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.zh-Hans.resx

@ -124,7 +124,7 @@
<value>自动隐藏</value> <value>自动隐藏</value>
</data> </data>
<data name="Anchorable_BtnClose_Hint" xml:space="preserve"> <data name="Anchorable_BtnClose_Hint" xml:space="preserve">
<value>隐藏</value> <value>全部藏起来</value>
</data> </data>
<data name="Anchorable_CxMenu_Hint" xml:space="preserve"> <data name="Anchorable_CxMenu_Hint" xml:space="preserve">
<value>窗口位置</value> <value>窗口位置</value>

1438
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Default.xaml

File diff suppressed because it is too large

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinAutoHide_White.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinClose_White.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinDocMenu_White.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMaximize_White.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMenu_White.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinRestore_White.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

1422
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/generic.xaml

File diff suppressed because it is too large

31
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Xceed.Wpf.AvalonDock.csproj

@ -165,6 +165,7 @@
<Compile Include="Layout\ILayoutElement.cs" /> <Compile Include="Layout\ILayoutElement.cs" />
<Compile Include="Layout\ILayoutElementWithVisibility.cs" /> <Compile Include="Layout\ILayoutElementWithVisibility.cs" />
<Compile Include="Layout\ILayoutGroup.cs" /> <Compile Include="Layout\ILayoutGroup.cs" />
<Compile Include="Layout\ILayoutInitialContainer.cs" />
<Compile Include="Layout\ILayoutOrientableElement.cs" /> <Compile Include="Layout\ILayoutOrientableElement.cs" />
<Compile Include="Layout\ILayoutPane.cs" /> <Compile Include="Layout\ILayoutPane.cs" />
<Compile Include="Layout\ILayoutPanelElement.cs" /> <Compile Include="Layout\ILayoutPanelElement.cs" />
@ -204,6 +205,11 @@
<Compile Include="Properties\AssemblyInfo.cs"> <Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="Properties\Resources.ja-JP.Designer.cs">
<DependentUpon>Resources.ja-JP.resx</DependentUpon>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="Properties\Resources.cs-CZ.Designer.cs"> <Compile Include="Properties\Resources.cs-CZ.Designer.cs">
<DependentUpon>Resources.cs-CZ.resx</DependentUpon> <DependentUpon>Resources.cs-CZ.resx</DependentUpon>
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
@ -272,6 +278,11 @@
</Compile> </Compile>
<Compile Include="Win32Helper.cs" /> <Compile Include="Win32Helper.cs" />
<Compile Include="WindowHelper.cs" /> <Compile Include="WindowHelper.cs" />
<EmbeddedResource Include="Properties\Resources.ja-JP.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.ja-JP.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.cs-CZ.resx"> <EmbeddedResource Include="Properties\Resources.cs-CZ.resx">
<Generator>PublicResXFileCodeGenerator</Generator> <Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.cs-CZ.Designer.cs</LastGenOutput> <LastGenOutput>Resources.cs-CZ.Designer.cs</LastGenOutput>
@ -364,6 +375,10 @@
<Resource Include="Themes\Generic\Images\PinRestore.png" /> <Resource Include="Themes\Generic\Images\PinRestore.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Page Include="Themes\Default.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Themes\generic.xaml"> <Page Include="Themes\generic.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
@ -375,6 +390,22 @@
<Name>Xceed.Wpf.Toolkit</Name> <Name>Xceed.Wpf.Toolkit</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Resource Include="Themes\Generic\Images\PinAutoHide_White.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Themes\Generic\Images\PinClose_White.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Themes\Generic\Images\PinDocMenu_White.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Themes\Generic\Images\PinMenu_White.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Themes\Generic\Images\PinMaximize_White.png" />
<Resource Include="Themes\Generic\Images\PinRestore_White.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. Other similar extension points exist, see Microsoft.Common.targets.

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiLineTextEditorView.xaml.txt

@ -33,7 +33,7 @@
<xctk:MultiLineTextEditor <xctk:MultiLineTextEditor
TextWrapping="Wrap" TextWrapping="Wrap"
Text="{Binding Path=Review}" Text="{Binding Path=Review}"
Content="{Binding Text, RelativeSource={RelativeSource Self}}" Content="{Binding Path=Review}"
HorizontalContentAlignment="Left" HorizontalContentAlignment="Left"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Height="24" /> Height="24" />

8
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/SwitchPanelView.xaml.txt

@ -185,8 +185,8 @@
</TextBlock> </TextBlock>
</StackPanel> </StackPanel>
<GroupBox Header="WrapPanel Toolbox" <GroupBox Header="WrapPanel Toolbox"
Background="White" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
Grid.Row="3" Grid.Row="3"
Visibility="{Binding SelectedIndex, ElementName=layoutCombo, Converter={StaticResource comboBoxToVisibilityConverter}, ConverterParameter=0}" Visibility="{Binding SelectedIndex, ElementName=layoutCombo, Converter={StaticResource comboBoxToVisibilityConverter}, ConverterParameter=0}"
Margin="10" > Margin="10" >
@ -250,8 +250,8 @@
</StackPanel> </StackPanel>
</GroupBox> </GroupBox>
<GroupBox Header="RandomPanel Toolbox" <GroupBox Header="RandomPanel Toolbox"
Background="White" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
Grid.Row="3" Grid.Row="3"
Visibility="{Binding SelectedIndex, ElementName=layoutCombo, Converter={StaticResource comboBoxToVisibilityConverter}, ConverterParameter=1}" Visibility="{Binding SelectedIndex, ElementName=layoutCombo, Converter={StaticResource comboBoxToVisibilityConverter}, ConverterParameter=1}"
Margin="10" > Margin="10" >

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/ThemingAvalonDockView.xaml.txt

@ -27,7 +27,7 @@
<local:DemoView.Description> <local:DemoView.Description>
<Paragraph FontSize="14" <Paragraph FontSize="14"
FontFamily="Segoe"> FontFamily="Segoe">
<Run>Changes the themes of the AvalonDock controls. Available themes are System, Aero, VS2010, Metro, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.AvalonDock.Themes.xxx.dll assemblies are necessary to use these themes.</Run> <Run>Changes the themes of the AvalonDock controls. Available themes are System, HighContrast, Aero, VS2010, Metro, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.AvalonDock.Themes.xxx.dll assemblies are necessary to use these themes.</Run>
<LineBreak /> <LineBreak />
<Run>Some features of this sample are only available in the "Plus" version.</Run> <Run>Some features of this sample are only available in the "Plus" version.</Run>
<LineBreak /> <LineBreak />

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/ThemingDataGridView.xaml.txt

@ -27,7 +27,7 @@
x:Name="_demo"> x:Name="_demo">
<local:DemoView.Description> <local:DemoView.Description>
<Paragraph FontSize="14" FontFamily="Segoe"> <Paragraph FontSize="14" FontFamily="Segoe">
<Run>Changes the themes of the datagrid control. Available themes are System, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.DataGrid.Themes.Office2007.dll or Xceed.Wpf.DataGrid.Themes.Metro.dll assemblies are necessary to use these themes.</Run> <Run>Changes the themes of the datagrid control. Available themes are System, HighContrast, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.DataGrid.Themes.Office2007.dll or Xceed.Wpf.DataGrid.Themes.Metro.dll assemblies are necessary to use these themes.</Run>
<LineBreak /> <LineBreak />
<Run>This feature is only available in the "Plus" version.</Run> <Run>This feature is only available in the "Plus" version.</Run>
<LineBreak /> <LineBreak />

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/ThemingExtendedToolkitView.xaml.txt

@ -25,7 +25,7 @@
x:Name="_demo"> x:Name="_demo">
<local:DemoView.Description> <local:DemoView.Description>
<Paragraph FontSize="14" FontFamily="Segoe"> <Paragraph FontSize="14" FontFamily="Segoe">
<Run>Changes the themes of the Toolkit for WPF controls. Available themes are System, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.Toolkit.Themes.Office2007.dll, Xceed.Wpf.Toolkit.Themes.Windows10.dll or Xceed.Wpf.Toolkit.Themes.Metro.dll assemblies are necessary to use the themes.</Run> <Run>Changes the themes of the Toolkit for WPF controls. Available themes are System, HighContrast, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.Toolkit.Themes.Office2007.dll, Xceed.Wpf.Toolkit.Themes.Windows10.dll or Xceed.Wpf.Toolkit.Themes.Metro.dll assemblies are necessary to use the themes.</Run>
<LineBreak /> <LineBreak />
<Run>This feature is only available in the "Plus" version.</Run> <Run>This feature is only available in the "Plus" version.</Run>
<LineBreak /> <LineBreak />

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/ThemingListBoxView.xaml.txt

@ -30,7 +30,7 @@
<Run>Dress Up Your App in Style in Minutes</Run> <Run>Dress Up Your App in Style in Minutes</Run>
<LineBreak /> <LineBreak />
<LineBreak /> <LineBreak />
<Run>Supports implicit styles, so the entire listbox can be styled in minutes with a couple of lines of code. Also supports explicit styles and Expression Blend. Available themes are System, Office2007, LiveExplorer, MediaPlayer, Windows10 and Metro with accent color. The Xceed.Wpf.ListBox.Themes.xxx.dll assembly is necessary to use the themes.</Run> <Run>Supports implicit styles, so the entire listbox can be styled in minutes with a couple of lines of code. Also supports explicit styles and Expression Blend. Available themes are System, HighContrast, Office2007, LiveExplorer, MediaPlayer, Windows10 and Metro with accent color. The Xceed.Wpf.ListBox.Themes.xxx.dll assembly is necessary to use the themes.</Run>
<LineBreak /> <LineBreak />
<Run>This feature is only available in the "Plus" version.</Run> <Run>This feature is only available in the "Plus" version.</Run>
<LineBreak /> <LineBreak />

3
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/WindowContainerView.xaml.txt

@ -66,7 +66,8 @@
</Grid> </Grid>
</GroupBox> </GroupBox>
<Grid Grid.Row="1" Margin="10"> <Grid Grid.Row="1" Margin="10"
TextElement.Foreground="{DynamicResource {x:Static SystemColors.ActiveCaptionTextBrushKey}}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="*" /> <RowDefinition Height="*" />

8
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/ZoomboxView.xaml.txt

@ -39,7 +39,7 @@
<TabControl Margin="20,20,0,20" <TabControl Margin="20,20,0,20"
Width="360" Width="360"
Grid.Column="0" Grid.Column="0"
Background="White" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
DataContext="{Binding ElementName=zoombox}"> DataContext="{Binding ElementName=zoombox}">
<TabControl.Resources> <TabControl.Resources>
<xctk:RoundedValueConverter x:Key="Round" <xctk:RoundedValueConverter x:Key="Round"
@ -86,19 +86,19 @@
IsOpen="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsMouseOver, Mode=OneWay}"> IsOpen="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsMouseOver, Mode=OneWay}">
<Border Name="Border" <Border Name="Border"
Background="#FFC72035" Background="#FFC72035"
BorderBrush="White" BorderBrush="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"
Margin="0" Margin="0"
BorderThickness="1" BorderThickness="1"
CornerRadius="10"> CornerRadius="10">
<TextBlock Margin="7" <TextBlock Margin="7"
MaxWidth="500" MaxWidth="500"
TextWrapping="Wrap" TextWrapping="Wrap"
Foreground="White" Foreground="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"
Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tag.InnerText}" /> Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tag.InnerText}" />
</Border> </Border>
</Popup> </Popup>
<Rectangle Grid.ColumnSpan="3" <Rectangle Grid.ColumnSpan="3"
Fill="White" Fill="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
Stroke="{x:Null}" Stroke="{x:Null}"
StrokeThickness="0" StrokeThickness="0"
RadiusX="0" RadiusX="0"

35
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/MainWindow.xaml

@ -229,9 +229,8 @@
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}">
Transparent Transparent
</SolidColorBrush> </SolidColorBrush>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
Black Color="{DynamicResource {x:Static SystemColors.ActiveCaptionTextColorKey}}" />
</SolidColorBrush>
</Style.Resources> </Style.Resources>
<Setter Property="FontSize" <Setter Property="FontSize"
@ -241,7 +240,7 @@
<Setter Property="FontWeight" <Setter Property="FontWeight"
Value="Light" /> Value="Light" />
<Setter Property="Foreground" <Setter Property="Foreground"
Value="Black" /> Value="{DynamicResource {x:Static SystemColors.ActiveCaptionTextBrushKey}}" />
<Setter Property="Focusable" <Setter Property="Focusable"
Value="False" /> Value="False" />
<Setter Property="IsExpanded" <Setter Property="IsExpanded"
@ -271,9 +270,9 @@
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}">
Transparent Transparent
</SolidColorBrush> </SolidColorBrush>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
Black Color="{DynamicResource {x:Static SystemColors.ActiveCaptionTextColorKey}}"/>
</SolidColorBrush>
</Style.Resources> </Style.Resources>
<Setter Property="FontSize" <Setter Property="FontSize"
@ -283,7 +282,7 @@
<Setter Property="FontWeight" <Setter Property="FontWeight"
Value="Light" /> Value="Light" />
<Setter Property="Foreground" <Setter Property="Foreground"
Value="Black" /> Value="{DynamicResource {x:Static SystemColors.ActiveCaptionTextBrushKey}}" />
<Setter Property="Template" <Setter Property="Template"
Value="{StaticResource TreeViewItemTemplate}" /> Value="{StaticResource TreeViewItemTemplate}" />
<Setter Property="HeaderTemplate"> <Setter Property="HeaderTemplate">
@ -314,7 +313,7 @@
<Setter Property="FontWeight" <Setter Property="FontWeight"
Value="Light" /> Value="Light" />
<Setter Property="Foreground" <Setter Property="Foreground"
Value="Black" /> Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
<Setter Property="Template" <Setter Property="Template"
Value="{StaticResource TreeViewItemTemplate}" /> Value="{StaticResource TreeViewItemTemplate}" />
<Setter Property="HeaderTemplate"> <Setter Property="HeaderTemplate">
@ -332,7 +331,7 @@
<Trigger Property="IsMouseOver" <Trigger Property="IsMouseOver"
Value="True"> Value="True">
<Setter Property="Background" <Setter Property="Background"
Value="#e8e8e8" Value="#b0b0b0"
TargetName="_treeViewItemBorder" /> TargetName="_treeViewItemBorder" />
</Trigger> </Trigger>
</DataTemplate.Triggers> </DataTemplate.Triggers>
@ -373,7 +372,7 @@
FontFamily="Segoe UI" FontFamily="Segoe UI"
FontWeight="Light" FontWeight="Light"
TextAlignment="right" TextAlignment="right"
Foreground="Black" Foreground="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"
TextTrimming="CharacterEllipsis" TextTrimming="CharacterEllipsis"
Text="{Binding View.Title, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" /> Text="{Binding View.Title, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
<TabPanel Grid.Column="1" <TabPanel Grid.Column="1"
@ -407,7 +406,7 @@
FontFamily="Segoe UI" FontFamily="Segoe UI"
FontSize="14" FontSize="14"
FontWeight="SemiBold" FontWeight="SemiBold"
Foreground="Black" Foreground="{DynamicResource {x:Static SystemColors.DesktopBrushKey}}"
Text="{TemplateBinding Header}" Text="{TemplateBinding Header}"
TextWrapping="Wrap" /> TextWrapping="Wrap" />
</Grid> </Grid>
@ -419,7 +418,7 @@
Value="{StaticResource SampleDefaultBrush}" /> Value="{StaticResource SampleDefaultBrush}" />
<Setter Property="Foreground" <Setter Property="Foreground"
TargetName="textBlock" TargetName="textBlock"
Value="White" /> Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}" />
</Trigger> </Trigger>
</ControlTemplate.Triggers> </ControlTemplate.Triggers>
</ControlTemplate> </ControlTemplate>
@ -736,7 +735,7 @@
Grid.Column="1" Grid.Column="1"
HorizontalAlignment="Right" HorizontalAlignment="Right"
Margin="0,0,17,0" Margin="0,0,17,0"
Foreground="Gray" /> Foreground="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" />
<Grid Grid.Column="1" <Grid Grid.Column="1"
Grid.Row="1"> Grid.Row="1">
@ -776,7 +775,7 @@
<Border Grid.Column="1" <Border Grid.Column="1"
Width="225" Width="225"
BorderThickness="1" BorderThickness="1"
BorderBrush="Gray" BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
Margin="0,0,12,0"> Margin="0,0,12,0">
<Grid> <Grid>
<Grid.RowDefinitions> <Grid.RowDefinitions>
@ -789,7 +788,7 @@
<!-- Sample title --> <!-- Sample title -->
<TextBlock TextWrapping="Wrap" <TextBlock TextWrapping="Wrap"
Foreground="#FF606060" Foreground="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
FontSize="16" FontSize="16"
FontWeight="Bold" FontWeight="Bold"
FontFamily="Segoe UI" FontFamily="Segoe UI"
@ -821,7 +820,7 @@
<!-- Bottom Rectangle text --> <!-- Bottom Rectangle text -->
<TextBlock Grid.Row="2" <TextBlock Grid.Row="2"
Foreground="White" Foreground="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"
FontFamily="Verdana" FontFamily="Verdana"
FontSize="12" FontSize="12"
Margin="5,5,5,0" Margin="5,5,5,0"
@ -831,7 +830,7 @@
<TextBlock Grid.Row="3" <TextBlock Grid.Row="3"
Margin="20,5,5,0"> Margin="20,5,5,0">
<Hyperlink FontWeight="Black" <Hyperlink FontWeight="Black"
Foreground="White" Foreground="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"
FontFamily="Verdana" FontFamily="Verdana"
FontSize="12" FontSize="12"
Focusable="False" Focusable="False"

8
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Resources/TextBlockStyles.xaml

@ -29,7 +29,8 @@
<Style x:Key="DisableGrayText" TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}"> <Style x:Key="DisableGrayText" TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}">
<Style.Triggers> <Style.Triggers>
<Trigger Property="IsEnabled" Value="False"> <Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="Gray" /> <Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger> </Trigger>
</Style.Triggers> </Style.Triggers>
</Style> </Style>
@ -45,4 +46,9 @@
</Style.Triggers> </Style.Triggers>
</Style> </Style>
<Style TargetType="GroupBox">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.ActiveCaptionTextBrushKey}}" />
</Style>
</ResourceDictionary> </ResourceDictionary>

3
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/BusyIndicator/Resources/Common.xaml

@ -19,7 +19,8 @@
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"> xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit">
<DataTemplate x:Key="SampleContent"> <DataTemplate x:Key="SampleContent">
<Grid Margin="10"> <Grid Margin="10"
TextElement.Foreground="{DynamicResource {x:Static SystemColors.ActiveCaptionTextBrushKey}}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />

8
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Panels/Views/SwitchPanelView.xaml

@ -185,8 +185,8 @@
</TextBlock> </TextBlock>
</StackPanel> </StackPanel>
<GroupBox Header="WrapPanel Toolbox" <GroupBox Header="WrapPanel Toolbox"
Background="White" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
Grid.Row="3" Grid.Row="3"
Visibility="{Binding SelectedIndex, ElementName=layoutCombo, Converter={StaticResource comboBoxToVisibilityConverter}, ConverterParameter=0}" Visibility="{Binding SelectedIndex, ElementName=layoutCombo, Converter={StaticResource comboBoxToVisibilityConverter}, ConverterParameter=0}"
Margin="10" > Margin="10" >
@ -250,8 +250,8 @@
</StackPanel> </StackPanel>
</GroupBox> </GroupBox>
<GroupBox Header="RandomPanel Toolbox" <GroupBox Header="RandomPanel Toolbox"
Background="White" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
Grid.Row="3" Grid.Row="3"
Visibility="{Binding SelectedIndex, ElementName=layoutCombo, Converter={StaticResource comboBoxToVisibilityConverter}, ConverterParameter=1}" Visibility="{Binding SelectedIndex, ElementName=layoutCombo, Converter={StaticResource comboBoxToVisibilityConverter}, ConverterParameter=1}"
Margin="10" > Margin="10" >

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/MultiLineTextEditorView.xaml

@ -33,7 +33,7 @@
<xctk:MultiLineTextEditor <xctk:MultiLineTextEditor
TextWrapping="Wrap" TextWrapping="Wrap"
Text="{Binding Path=Review}" Text="{Binding Path=Review}"
Content="{Binding Text, RelativeSource={RelativeSource Self}}" Content="{Binding Path=Review}"
HorizontalContentAlignment="Left" HorizontalContentAlignment="Left"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Height="24" /> Height="24" />

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingAvalonDockView.xaml

@ -27,7 +27,7 @@
<local:DemoView.Description> <local:DemoView.Description>
<Paragraph FontSize="14" <Paragraph FontSize="14"
FontFamily="Segoe"> FontFamily="Segoe">
<Run>Changes the themes of the AvalonDock controls. Available themes are System, Aero, VS2010, Metro, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.AvalonDock.Themes.xxx.dll assemblies are necessary to use these themes.</Run> <Run>Changes the themes of the AvalonDock controls. Available themes are System, HighContrast, Aero, VS2010, Metro, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.AvalonDock.Themes.xxx.dll assemblies are necessary to use these themes.</Run>
<LineBreak /> <LineBreak />
<Run>Some features of this sample are only available in the "Plus" version.</Run> <Run>Some features of this sample are only available in the "Plus" version.</Run>
<LineBreak /> <LineBreak />

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingDataGridView.xaml

@ -27,7 +27,7 @@
x:Name="_demo"> x:Name="_demo">
<local:DemoView.Description> <local:DemoView.Description>
<Paragraph FontSize="14" FontFamily="Segoe"> <Paragraph FontSize="14" FontFamily="Segoe">
<Run>Changes the themes of the datagrid control. Available themes are System, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.DataGrid.Themes.Office2007.dll or Xceed.Wpf.DataGrid.Themes.Metro.dll assemblies are necessary to use these themes.</Run> <Run>Changes the themes of the datagrid control. Available themes are System, HighContrast, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.DataGrid.Themes.Office2007.dll or Xceed.Wpf.DataGrid.Themes.Metro.dll assemblies are necessary to use these themes.</Run>
<LineBreak /> <LineBreak />
<Run>This feature is only available in the "Plus" version.</Run> <Run>This feature is only available in the "Plus" version.</Run>
<LineBreak /> <LineBreak />

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingExtendedToolkitView.xaml

@ -25,7 +25,7 @@
x:Name="_demo"> x:Name="_demo">
<local:DemoView.Description> <local:DemoView.Description>
<Paragraph FontSize="14" FontFamily="Segoe"> <Paragraph FontSize="14" FontFamily="Segoe">
<Run>Changes the themes of the Toolkit for WPF controls. Available themes are System, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.Toolkit.Themes.Office2007.dll, Xceed.Wpf.Toolkit.Themes.Windows10.dll or Xceed.Wpf.Toolkit.Themes.Metro.dll assemblies are necessary to use the themes.</Run> <Run>Changes the themes of the Toolkit for WPF controls. Available themes are System, HighContrast, Office2007, Windows10 and Metro with accent color. The Xceed.Wpf.Toolkit.Themes.Office2007.dll, Xceed.Wpf.Toolkit.Themes.Windows10.dll or Xceed.Wpf.Toolkit.Themes.Metro.dll assemblies are necessary to use the themes.</Run>
<LineBreak /> <LineBreak />
<Run>This feature is only available in the "Plus" version.</Run> <Run>This feature is only available in the "Plus" version.</Run>
<LineBreak /> <LineBreak />

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingListBoxView.xaml

@ -30,7 +30,7 @@
<Run>Dress Up Your App in Style in Minutes</Run> <Run>Dress Up Your App in Style in Minutes</Run>
<LineBreak /> <LineBreak />
<LineBreak /> <LineBreak />
<Run>Supports implicit styles, so the entire listbox can be styled in minutes with a couple of lines of code. Also supports explicit styles and Expression Blend. Available themes are System, Office2007, LiveExplorer, MediaPlayer, Windows10 and Metro with accent color. The Xceed.Wpf.ListBox.Themes.xxx.dll assembly is necessary to use the themes.</Run> <Run>Supports implicit styles, so the entire listbox can be styled in minutes with a couple of lines of code. Also supports explicit styles and Expression Blend. Available themes are System, HighContrast, Office2007, LiveExplorer, MediaPlayer, Windows10 and Metro with accent color. The Xceed.Wpf.ListBox.Themes.xxx.dll assembly is necessary to use the themes.</Run>
<LineBreak /> <LineBreak />
<Run>This feature is only available in the "Plus" version.</Run> <Run>This feature is only available in the "Plus" version.</Run>
<LineBreak /> <LineBreak />

3
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Window/Views/WindowContainerView.xaml

@ -66,7 +66,8 @@
</Grid> </Grid>
</GroupBox> </GroupBox>
<Grid Grid.Row="1" Margin="10"> <Grid Grid.Row="1" Margin="10"
TextElement.Foreground="{DynamicResource {x:Static SystemColors.ActiveCaptionTextBrushKey}}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="*" /> <RowDefinition Height="*" />

8
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Zoombox/Views/ZoomboxView.xaml

@ -39,7 +39,7 @@
<TabControl Margin="20,20,0,20" <TabControl Margin="20,20,0,20"
Width="360" Width="360"
Grid.Column="0" Grid.Column="0"
Background="White" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
DataContext="{Binding ElementName=zoombox}"> DataContext="{Binding ElementName=zoombox}">
<TabControl.Resources> <TabControl.Resources>
<xctk:RoundedValueConverter x:Key="Round" <xctk:RoundedValueConverter x:Key="Round"
@ -86,19 +86,19 @@
IsOpen="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsMouseOver, Mode=OneWay}"> IsOpen="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsMouseOver, Mode=OneWay}">
<Border Name="Border" <Border Name="Border"
Background="#FFC72035" Background="#FFC72035"
BorderBrush="White" BorderBrush="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"
Margin="0" Margin="0"
BorderThickness="1" BorderThickness="1"
CornerRadius="10"> CornerRadius="10">
<TextBlock Margin="7" <TextBlock Margin="7"
MaxWidth="500" MaxWidth="500"
TextWrapping="Wrap" TextWrapping="Wrap"
Foreground="White" Foreground="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"
Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tag.InnerText}" /> Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tag.InnerText}" />
</Border> </Border>
</Popup> </Popup>
<Rectangle Grid.ColumnSpan="3" <Rectangle Grid.ColumnSpan="3"
Fill="White" Fill="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
Stroke="{x:Null}" Stroke="{x:Null}"
StrokeThickness="0" StrokeThickness="0"
RadiusX="0" RadiusX="0"

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Images/Delete16_White.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Images/Duplicate_White.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

20
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs

@ -287,6 +287,9 @@ namespace Xceed.Wpf.Toolkit
private void GenerateValue( PropertyInfo propertyInfo, object propertyInfoValue, object result, bool isIndexed = false ) private void GenerateValue( PropertyInfo propertyInfo, object propertyInfoValue, object result, bool isIndexed = false )
{ {
if( this.IsCyclingDependency( propertyInfoValue ) )
return;
// Look for nested object // Look for nested object
if( propertyInfo.PropertyType.IsClass if( propertyInfo.PropertyType.IsClass
&& ( propertyInfo.PropertyType != typeof( Transform ) ) && ( propertyInfo.PropertyType != typeof( Transform ) )
@ -341,6 +344,23 @@ namespace Xceed.Wpf.Toolkit
} }
} }
private bool IsCyclingDependency( object propertyInfoValue )
{
if( propertyInfoValue == null )
return false;
if( object.ReferenceEquals( propertyInfoValue, this.ItemsSource ) )
return true;
foreach( var item in this.ItemsSource )
{
if( object.ReferenceEquals( propertyInfoValue, item ) )
return true;
}
return false;
}
private object GenerateEditableKeyValuePair( object source ) private object GenerateEditableKeyValuePair( object source )
{ {
var sourceType = source.GetType(); var sourceType = source.GetType();

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/VersionResourceDictionary.cs

@ -16,6 +16,7 @@
***********************************************************************************/ ***********************************************************************************/
using System; using System;
using System.Windows;
namespace Xceed.Wpf.Toolkit.Core namespace Xceed.Wpf.Toolkit.Core
{ {
@ -24,14 +25,16 @@ namespace Xceed.Wpf.Toolkit.Core
public VersionResourceDictionary() { } public VersionResourceDictionary() { }
public VersionResourceDictionary( string assemblyName, string sourcePath ) public VersionResourceDictionary( string assemblyName, string sourcePath )
:base( assemblyName, sourcePath ) :base( assemblyName, sourcePath )
{ {
} }
protected override Uri BuildUri() protected override Uri BuildUri()
{ {
string uriStr = PackUriExtension.BuildAbsolutePackUriString( this.AssemblyName, _XceedVersionInfo.Version, this.SourcePath ); var source = this.SourcePath;
string uriStr = PackUriExtension.BuildAbsolutePackUriString( this.AssemblyName, _XceedVersionInfo.Version, source );
return new Uri( uriStr, UriKind.Absolute ); return new Uri( uriStr, UriKind.Absolute );
} }
} }

5
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimePicker/Implementation/DateTimePicker.cs

@ -43,6 +43,7 @@ namespace Xceed.Wpf.Toolkit
private TimePicker _timePicker; private TimePicker _timePicker;
private DateTime? _calendarTemporaryDateTime; private DateTime? _calendarTemporaryDateTime;
private DateTime? _calendarIntendedDateTime; private DateTime? _calendarIntendedDateTime;
private bool _isModifyingCalendarInternally;
#endregion //Members #endregion //Members
@ -299,8 +300,10 @@ namespace Xceed.Wpf.Toolkit
if( _calendar != null && _calendar.SelectedDate != newValueDate) if( _calendar != null && _calendar.SelectedDate != newValueDate)
{ {
_isModifyingCalendarInternally = true;
_calendar.SelectedDate = newValueDate; _calendar.SelectedDate = newValueDate;
_calendar.DisplayDate = newValue.GetValueOrDefault( this.ContextNow ); _calendar.DisplayDate = newValue.GetValueOrDefault( this.ContextNow );
_isModifyingCalendarInternally = false;
} }
//If we change any part of the datetime without //If we change any part of the datetime without
@ -450,7 +453,7 @@ namespace Xceed.Wpf.Toolkit
//} //}
//else //else
//{ //{
if( !object.Equals( newDate, Value ) ) if( !_isModifyingCalendarInternally && !object.Equals( newDate, Value ) )
{ {
this.Value = newDate; this.Value = newDate;
} }

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DropDownButton/Implementation/DropDownButton.cs

@ -376,7 +376,7 @@ namespace Xceed.Wpf.Toolkit
private void OnMouseDownOutsideCapturedElement( object sender, MouseButtonEventArgs e ) private void OnMouseDownOutsideCapturedElement( object sender, MouseButtonEventArgs e )
{ {
if( !this.IsMouseCaptureWithin ) if( (_popup != null) && !_popup.IsMouseDirectlyOver )
{ {
this.CloseDropDown( true ); this.CloseDropDown( true );
} }

5
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Magnifier/Themes/Generic.xaml

@ -64,6 +64,11 @@
<Trigger Property="FrameType" Value="Rectangle"> <Trigger Property="FrameType" Value="Rectangle">
<Setter Property="Template" Value="{StaticResource RectangleTemplate}" /> <Setter Property="Template" Value="{StaticResource RectangleTemplate}" />
</Trigger> </Trigger>
<Trigger Property="IsEnabled"
Value="False">
<Setter Property="Template"
Value="{x:Null}" />
</Trigger>
</Style.Triggers> </Style.Triggers>
</Style> </Style>

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Implementation/MaskedTextBox.cs

@ -1333,7 +1333,7 @@ namespace Xceed.Wpf.Toolkit
provider.IncludeLiterals = true; provider.IncludeLiterals = true;
provider.IncludePrompt = true; provider.IncludePrompt = true;
provider.IsPassword = false; provider.IsPassword = false;
return provider; return provider;
} }

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Images/Notes16.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 B

14
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Aero2.NormalColor.xaml

@ -30,11 +30,10 @@
<conv:InverseBoolConverter x:Key="InverseBoolConverter" /> <conv:InverseBoolConverter x:Key="InverseBoolConverter" />
<Image x:Key="DefaultContent" <TextBlock x:Key="DefaultContent"
x:Shared="False" Text="{Binding Text, RelativeSource={RelativeSource AncestorType={x:Type local:MultiLineTextEditor}}}"
Height="16" TextWrapping="Wrap"
Width="18" TextTrimming="CharacterEllipsis" />
Source="./../Images/Notes16.png" />
<Style x:Key="ToggleButtonStyle" <Style x:Key="ToggleButtonStyle"
TargetType="ToggleButton"> TargetType="ToggleButton">
@ -212,6 +211,11 @@
<Setter Property="BorderBrush" <Setter Property="BorderBrush"
Value="{DynamicResource {x:Static themes:ResourceKeys.ControlSelectedBorderKey}}" /> Value="{DynamicResource {x:Static themes:ResourceKeys.ControlSelectedBorderKey}}" />
</Trigger> </Trigger>
<Trigger Property="IsEnabled"
Value="False">
<Setter Property="TextElement.Foreground"
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</Style.Triggers> </Style.Triggers>
</Style> </Style>

9
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Generic.xaml

@ -28,11 +28,10 @@
<conv:InverseBoolConverter x:Key="InverseBoolConverter" /> <conv:InverseBoolConverter x:Key="InverseBoolConverter" />
<Image x:Key="DefaultContent" <TextBlock x:Key="DefaultContent"
x:Shared="False" Text="{Binding Text, RelativeSource={RelativeSource AncestorType={x:Type local:MultiLineTextEditor}}}"
Height="16" TextWrapping="Wrap"
Width="18" TextTrimming="CharacterEllipsis" />
Source="./../Images/Notes16.png" />
<LinearGradientBrush x:Key="PopupDarkBorderBrush" <LinearGradientBrush x:Key="PopupDarkBorderBrush"
EndPoint="0.5,1" EndPoint="0.5,1"

4
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Primitives/DateTimeUpDownBase.cs

@ -147,7 +147,7 @@ namespace Xceed.Wpf.Toolkit.Primitives
return; return;
} }
case Key.Add: case Key.Add:
if( this.AllowSpin && !this.IsReadOnly ) if( this.AllowSpin && !this.AllowTextInput && !this.IsReadOnly )
{ {
this.DoIncrement(); this.DoIncrement();
e.Handled = true; e.Handled = true;
@ -155,7 +155,7 @@ namespace Xceed.Wpf.Toolkit.Primitives
_fireSelectionChangedEvent = false; _fireSelectionChangedEvent = false;
break; break;
case Key.Subtract: case Key.Subtract:
if( this.AllowSpin && !this.IsReadOnly ) if( this.AllowSpin && !this.AllowTextInput && !this.IsReadOnly )
{ {
this.DoDecrement(); this.DoDecrement();
e.Handled = true; e.Handled = true;

30
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Primitives/Selector.cs

@ -479,11 +479,33 @@ namespace Xceed.Wpf.Toolkit.Primitives
|| propertyPath == "." ) || propertyPath == "." )
return item; return item;
if( propertyPath.Contains( "." ) )
{
object objectValue = item;
var parts = propertyPath.Split( new char[] { '.' } );
PropertyInfo prop = item.GetType().GetProperty( propertyPath ); foreach( var part in parts )
return ( prop != null ) {
? prop.GetValue( item, null ) var prop = objectValue.GetType().GetProperty( part );
: null; if( prop != null )
{
objectValue = prop.GetValue( objectValue, null );
}
else
{
return null;
}
}
return objectValue;
}
else
{
var prop = item.GetType().GetProperty( propertyPath );
return ( prop != null )
? prop.GetValue( item, null )
: null;
}
} }
protected object GetItemValue( object item ) protected object GetItemValue( object item )

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/ClearFilter16_Green.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/ClearFilter16_White.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/SortAscending16_White.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

9
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Implementation/PropertyItem.cs

@ -30,6 +30,7 @@ using Xceed.Wpf.Toolkit.Core.Utilities;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Diagnostics; using System.Diagnostics;
using System.Globalization; using System.Globalization;
using System.Windows.Threading;
namespace Xceed.Wpf.Toolkit.PropertyGrid namespace Xceed.Wpf.Toolkit.PropertyGrid
{ {
@ -229,8 +230,12 @@ namespace Xceed.Wpf.Toolkit.PropertyGrid
DescriptorPropertyDefinitionBase descriptor = be.DataItem as DescriptorPropertyDefinitionBase; DescriptorPropertyDefinitionBase descriptor = be.DataItem as DescriptorPropertyDefinitionBase;
if( Validation.GetHasError( descriptor ) ) if( Validation.GetHasError( descriptor ) )
{ {
ReadOnlyObservableCollection<ValidationError> errors = Validation.GetErrors( descriptor ); this.Dispatcher.BeginInvoke( DispatcherPriority.Input, new Action( () =>
Validation.MarkInvalid( be, errors[ 0 ] ); {
var errors = Validation.GetErrors( descriptor );
Validation.MarkInvalid( be, errors[ 0 ] );
}
) );
} }
} }
} }

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bold_White16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bullets_White16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/CenterAlign_White16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/FontColorPicker_White16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Italic_White16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/LeftAlign_White16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Numbering_White16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/RightAlign_White16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/TextHighlightColorPicker_White16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

BIN
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Underline_White16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

4
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/RichTextBoxFormatBarManager.cs

@ -174,7 +174,9 @@ namespace Xceed.Wpf.Toolkit
void ShowAdorner() void ShowAdorner()
{ {
if( _adorner.Visibility == Visibility.Visible ) if( _adorner.Visibility == Visibility.Visible )
return; {
HideAdorner();
}
VerifyAdornerLayer(); VerifyAdornerLayer();

21
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Themes/Generic.xaml

@ -21,7 +21,15 @@
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<!-- core:VersionResourceDictionary will take care of modifying the value of 'AssemblyName' to match <!-- core:VersionResourceDictionary will take care of modifying the value of 'AssemblyName' to match
the real name of the assembly when compiled for other platforms, like .NET Core for example. --> the real name of the assembly when compiled for other platforms, like .NET Core for example. -->
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Themes/Generic/Brushes.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Themes/Generic/Brushes.xaml"/>
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Themes/Generic/Buttons.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Themes/Generic/Buttons.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Themes/Generic/Common.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Themes/Generic/Common.xaml" />
@ -32,11 +40,11 @@
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="ButtonSpinner/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="ButtonSpinner/Themes/Generic.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Calculator/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Calculator/Themes/Generic.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="CalculatorUpDown/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="CalculatorUpDown/Themes/Generic.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Primitives/Themes/Generic/WindowControl.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Primitives/Themes/Generic/WindowControl.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Primitives/Themes/Generic/SelectorItem.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Primitives/Themes/Generic/SelectorItem.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="CheckComboBox/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="CheckComboBox/Themes/Generic.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="CheckListBox/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="CheckListBox/Themes/Generic.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="ChildWindow/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="ChildWindow/Themes/Generic.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="CollectionControl/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="CollectionControl/Themes/Generic.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="ColorCanvas/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="ColorCanvas/Themes/Generic.xaml" />
@ -57,9 +65,10 @@
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="TimePicker/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="TimePicker/Themes/Generic.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="TimeSpanUpDown/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="TimeSpanUpDown/Themes/Generic.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="WatermarkComboBox/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="WatermarkComboBox/Themes/Generic.xaml"/>
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="WatermarkTextBox/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="WatermarkTextBox/Themes/Generic.xaml"/>
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Wizard/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Wizard/Themes/Generic.xaml" />
<core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Zoombox/Themes/Generic.xaml" /> <core:VersionResourceDictionary AssemblyName="Xceed.Wpf.Toolkit" SourcePath="Zoombox/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
</ResourceDictionary> </ResourceDictionary>

30
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Wizard/Implementation/Wizard.cs

@ -22,11 +22,18 @@ using System.Windows.Controls;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Interop; using System.Windows.Interop;
using Xceed.Wpf.Toolkit.Core; using Xceed.Wpf.Toolkit.Core;
using System.ComponentModel;
namespace Xceed.Wpf.Toolkit namespace Xceed.Wpf.Toolkit
{ {
public class Wizard : ItemsControl public class Wizard : ItemsControl
{ {
#region Private Members
private bool? _dialogResult = null;
#endregion
#region Properties #region Properties
public static readonly DependencyProperty BackButtonContentProperty = DependencyProperty.Register( "BackButtonContent", typeof( object ), typeof( Wizard ), new UIPropertyMetadata( "< Back" ) ); public static readonly DependencyProperty BackButtonContentProperty = DependencyProperty.Register( "BackButtonContent", typeof( object ), typeof( Wizard ), new UIPropertyMetadata( "< Back" ) );
@ -639,12 +646,33 @@ namespace Xceed.Wpf.Toolkit
{ {
//we can only set the DialogResult if the window was opened as modal with the ShowDialog() method. Otherwise an exception would occur //we can only set the DialogResult if the window was opened as modal with the ShowDialog() method. Otherwise an exception would occur
if( ComponentDispatcher.IsThreadModal ) if( ComponentDispatcher.IsThreadModal )
window.DialogResult = dialogResult; {
_dialogResult = dialogResult;
window.Closing += this.Window_Closing;
}
window.Close(); window.Close();
} }
} }
private void Window_Closing( object sender, CancelEventArgs e )
{
var window = sender as Window;
if( window != null )
{
if( !e.Cancel )
{
// Set dialog result only when closing is not canceled.
window.DialogResult = _dialogResult;
}
_dialogResult = null;
window.Closing -= this.Window_Closing;
}
}
private bool NextPageExists() private bool NextPageExists()
{ {
bool exists = false; bool exists = false;

48
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj

@ -739,9 +739,6 @@
<ItemGroup> <ItemGroup>
<Resource Include="PropertyGrid\Images\ClearFilter16.png" /> <Resource Include="PropertyGrid\Images\ClearFilter16.png" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Resource Include="MultiLineTextEditor\Images\Notes16.png" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Zoombox\Resources\Zoom.cur" /> <Resource Include="Zoombox\Resources\Zoom.cur" />
<Resource Include="Zoombox\Resources\ZoomRelative.cur" /> <Resource Include="Zoombox\Resources\ZoomRelative.cur" />
@ -948,6 +945,51 @@
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Zoombox\Zoombox.Icon.bmp" /> <EmbeddedResource Include="Zoombox\Zoombox.Icon.bmp" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Resource Include="PropertyGrid\Images\SortAscending16_White.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="RichTextBoxFormatBar\Images\Bullets_White16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="RichTextBoxFormatBar\Images\Numbering_White16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="RichTextBoxFormatBar\Images\Bold_White16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="RichTextBoxFormatBar\Images\Italic_White16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="RichTextBoxFormatBar\Images\Underline_White16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="RichTextBoxFormatBar\Images\LeftAlign_White16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="RichTextBoxFormatBar\Images\CenterAlign_White16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="RichTextBoxFormatBar\Images\RightAlign_White16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="RichTextBoxFormatBar\Images\TextHighlightColorPicker_White16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="RichTextBoxFormatBar\Images\FontColorPicker_White16.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="CollectionControl\Images\Duplicate_White.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="CollectionControl\Images\Delete16_White.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="PropertyGrid\Images\ClearFilter16_White.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="PropertyGrid\Images\ClearFilter16_Green.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. Other similar extension points exist, see Microsoft.Common.targets.

2
ExtendedWPFToolkitSolution/Xceed.Wpf.Toolkit.sln

@ -64,6 +64,6 @@ Global
{BA72CCE0-A9FB-4995-B496-7FEC5C87B85B} = {8976E4A6-FF5F-44C5-AC57-FEDA249DD199} {BA72CCE0-A9FB-4995-B496-7FEC5C87B85B} = {8976E4A6-FF5F-44C5-AC57-FEDA249DD199}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3A25421B-477A-4212-9A1F-F20CB611EF43} SolutionGuid = {F6B58C75-8547-402F-A83D-43DA9FA7E434}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

Loading…
Cancel
Save