From 59dd599ec01605d050e4b33578ed9dd1e625d726 Mon Sep 17 00:00:00 2001 From: Simon Boucher Date: Thu, 7 Jan 2021 07:58:14 -0500 Subject: [PATCH] V4.0.2 Released --- .../Theme.xaml | 4 +- .../Theme.xaml | 4 +- .../Theme.xaml | 4 +- .../Controls/DocumentPaneDropTarget.cs | 80 + .../LayoutAnchorableFloatingWindowControl.cs | 2 + .../Controls/LayoutAnchorablePaneControl.cs | 30 +- .../Controls/LayoutCachePaneControl.cs | 3 +- .../Controls/LayoutDocumentControl.cs | 26 +- .../LayoutDocumentFloatingWindowControl.cs | 3 + .../Controls/LayoutDocumentPaneControl.cs | 30 +- .../Controls/LayoutFloatingWindowControl.cs | 22 + .../Controls/LayoutGridControl.cs | 15 +- .../Xceed.Wpf.AvalonDock/DockingManager.cs | 66 +- .../Xceed.Wpf.AvalonDock/Layout/Extentions.cs | 20 +- .../Layout/ILayoutInitialContainer.cs | 32 + .../Layout/LayoutAnchorable.cs | 25 +- .../Layout/LayoutContent.cs | 109 +- .../Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs | 17 +- .../Layout/Serialization/LayoutSerializer.cs | 9 + .../Properties/Resources.Designer.cs | 4 +- .../Properties/Resources.cs-CZ.resx | 2 +- .../Properties/Resources.de.resx | 2 +- .../Properties/Resources.es.resx | 2 +- .../Properties/Resources.fr.resx | 2 +- .../Properties/Resources.hu.resx | 2 +- .../Properties/Resources.it.resx | 2 +- .../Properties/Resources.ja-JP.Designer.cs | 17 + .../Properties/Resources.ja-JP.resx | 183 +++ .../Properties/Resources.pt-BR.resx | 4 +- .../Properties/Resources.resx | 2 +- .../Properties/Resources.ro.resx | 2 +- .../Properties/Resources.ru.resx | 2 +- .../Properties/Resources.sv.resx | 2 +- .../Properties/Resources.zh-Hans.resx | 2 +- .../Xceed.Wpf.AvalonDock/Themes/Default.xaml | 1438 +++++++++++++++++ .../Generic/Images/PinAutoHide_White.png | Bin 0 -> 171 bytes .../Themes/Generic/Images/PinClose_White.png | Bin 0 -> 187 bytes .../Generic/Images/PinDocMenu_White.png | Bin 0 -> 168 bytes .../Generic/Images/PinMaximize_White.png | Bin 0 -> 170 bytes .../Themes/Generic/Images/PinMenu_White.png | Bin 0 -> 162 bytes .../Generic/Images/PinRestore_White.png | Bin 0 -> 191 bytes .../Xceed.Wpf.AvalonDock/Themes/generic.xaml | 1422 +--------------- .../Xceed.Wpf.AvalonDock.csproj | 31 + .../MultiLineTextEditorView.xaml.txt | 2 +- .../CodeFiles/SwitchPanelView.xaml.txt | 8 +- .../CodeFiles/ThemingAvalonDockView.xaml.txt | 2 +- .../CodeFiles/ThemingDataGridView.xaml.txt | 2 +- .../ThemingExtendedToolkitView.xaml.txt | 2 +- .../CodeFiles/ThemingListBoxView.xaml.txt | 2 +- .../CodeFiles/WindowContainerView.xaml.txt | 3 +- .../CodeFiles/ZoomboxView.xaml.txt | 8 +- .../MainWindow.xaml | 35 +- .../Resources/TextBlockStyles.xaml | 8 +- .../BusyIndicator/Resources/Common.xaml | 3 +- .../Samples/Panels/Views/SwitchPanelView.xaml | 8 +- .../Text/Views/MultiLineTextEditorView.xaml | 2 +- .../Theming/Views/ThemingAvalonDockView.xaml | 2 +- .../Theming/Views/ThemingDataGridView.xaml | 2 +- .../Views/ThemingExtendedToolkitView.xaml | 2 +- .../Theming/Views/ThemingListBoxView.xaml | 2 +- .../Window/Views/WindowContainerView.xaml | 3 +- .../Samples/Zoombox/Views/ZoomboxView.xaml | 8 +- .../Images/Delete16_White.png | Bin 0 -> 232 bytes .../Images/Duplicate_White.png | Bin 0 -> 188 bytes .../CollectionControlDialog.xaml.cs | 20 + .../Core/VersionResourceDictionary.cs | 7 +- .../Implementation/DateTimePicker.cs | 5 +- .../Implementation/DropDownButton.cs | 2 +- .../Magnifier/Themes/Generic.xaml | 5 + .../Implementation/MaskedTextBox.cs | 2 +- .../MultiLineTextEditor/Images/Notes16.png | Bin 601 -> 0 bytes .../Themes/Aero2.NormalColor.xaml | 14 +- .../MultiLineTextEditor/Themes/Generic.xaml | 9 +- .../Primitives/DateTimeUpDownBase.cs | 4 +- .../Xceed.Wpf.Toolkit/Primitives/Selector.cs | 30 +- .../Images/ClearFilter16_Green.png | Bin 0 -> 227 bytes .../Images/ClearFilter16_White.png | Bin 0 -> 232 bytes .../Images/SortAscending16_White.png | Bin 0 -> 369 bytes .../Implementation/PropertyItem.cs | 9 +- .../Images/Bold_White16.png | Bin 0 -> 183 bytes .../Images/Bullets_White16.png | Bin 0 -> 157 bytes .../Images/CenterAlign_White16.png | Bin 0 -> 149 bytes .../Images/FontColorPicker_White16.png | Bin 0 -> 219 bytes .../Images/Italic_White16.png | Bin 0 -> 181 bytes .../Images/LeftAlign_White16.png | Bin 0 -> 149 bytes .../Images/Numbering_White16.png | Bin 0 -> 194 bytes .../Images/RightAlign_White16.png | Bin 0 -> 148 bytes .../TextHighlightColorPicker_White16.png | Bin 0 -> 368 bytes .../Images/Underline_White16.png | Bin 0 -> 184 bytes .../RichTextBoxFormatBarManager.cs | 4 +- .../Src/Xceed.Wpf.Toolkit/Themes/Generic.xaml | 21 +- .../Wizard/Implementation/Wizard.cs | 30 +- .../Xceed.Wpf.Toolkit.csproj | 48 +- .../Xceed.Wpf.Toolkit.sln | 2 +- 94 files changed, 2354 insertions(+), 1584 deletions(-) create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/ILayoutInitialContainer.cs create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.Designer.cs create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.resx create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Default.xaml create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinAutoHide_White.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinClose_White.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinDocMenu_White.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMaximize_White.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMenu_White.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinRestore_White.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Images/Delete16_White.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Images/Duplicate_White.png delete mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Images/Notes16.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/ClearFilter16_Green.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/ClearFilter16_White.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/SortAscending16_White.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bold_White16.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bullets_White16.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/CenterAlign_White16.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/FontColorPicker_White16.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Italic_White16.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/LeftAlign_White16.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Numbering_White16.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/RightAlign_White16.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/TextHighlightColorPicker_White16.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Underline_White16.png diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml index 4553b657..b9f95031 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml @@ -131,7 +131,6 @@ CornerRadius="2"> @@ -324,7 +323,6 @@ KeyboardNavigation.TabNavigation="Cycle"> @@ -509,7 +507,7 @@ HorizontalAlignment="Center" Command="{Binding Path=LayoutItem.HideCommand, RelativeSource={RelativeSource TemplatedParent}}" 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}"> diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Theme.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Theme.xaml index a6dd99f3..f4bd1bb4 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Theme.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Theme.xaml @@ -163,7 +163,6 @@ Padding="0,1,0,2"> @@ -334,7 +333,6 @@ KeyboardNavigation.TabNavigation="Cycle"> @@ -518,7 +516,7 @@ HorizontalAlignment="Center" Command="{Binding Path=LayoutItem.HideCommand, RelativeSource={RelativeSource TemplatedParent}}" 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}"> diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Theme.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Theme.xaml index 8bb8e729..f93be594 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Theme.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Theme.xaml @@ -196,7 +196,6 @@ Padding="0,1,0,2"> @@ -417,7 +416,6 @@ KeyboardNavigation.TabNavigation="Cycle"> @@ -605,7 +603,7 @@ HorizontalAlignment="Center" Command="{Binding Path=LayoutItem.HideCommand, RelativeSource={RelativeSource TemplatedParent}}" 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}"> diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropTarget.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropTarget.cs index 813f90f8..153eef3d 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropTarget.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropTarget.cs @@ -61,6 +61,16 @@ namespace Xceed.Wpf.AvalonDock.Controls #region DropTargetType.DocumentPaneDockBottom { 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; if( parentModel == null ) @@ -97,6 +107,16 @@ namespace Xceed.Wpf.AvalonDock.Controls #region DropTargetType.DocumentPaneDockTop { 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; if( parentModel == null ) @@ -133,6 +153,16 @@ namespace Xceed.Wpf.AvalonDock.Controls #region DropTargetType.DocumentPaneDockLeft { 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; if( parentModel == null ) @@ -168,6 +198,16 @@ namespace Xceed.Wpf.AvalonDock.Controls #region DropTargetType.DocumentPaneDockRight { 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; if( parentModel == null ) @@ -247,6 +287,16 @@ namespace Xceed.Wpf.AvalonDock.Controls { var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; 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 ) { @@ -286,6 +336,16 @@ namespace Xceed.Wpf.AvalonDock.Controls { var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; 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 ) { @@ -325,6 +385,16 @@ namespace Xceed.Wpf.AvalonDock.Controls { var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; 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 ) { @@ -365,6 +435,16 @@ namespace Xceed.Wpf.AvalonDock.Controls { var parentModel = targetModel.Parent as LayoutDocumentPaneGroup; 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 ) { diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableFloatingWindowControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableFloatingWindowControl.cs index 590fce12..f1a9563e 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableFloatingWindowControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableFloatingWindowControl.cs @@ -347,6 +347,8 @@ namespace Xceed.Wpf.AvalonDock.Controls var anchorableLayoutItem = manager.GetLayoutItemFromModel( anchorable ) as LayoutAnchorableItem; anchorableLayoutItem.HideCommand.Execute( parameter ); } + + this.BringFocusOnDockingManager(); } #endregion diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs index 14a3dbd8..c9ff6860 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs @@ -82,13 +82,17 @@ namespace Xceed.Wpf.AvalonDock.Controls { base.OnMouseLeftButtonDown( e ); - var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor(); - if ((this.Model != null) && (this.Model.Root != null) && (this.Model.Root.Manager != null) - && this.Model.Root.Manager.Equals(parentDockingManager)) + if( e.OriginalSource is Visual ) { - if (!e.Handled && (_model != null) && (_model.SelectedContent != null) ) + var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor(); + + 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 ); - var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor(); - if ((this.Model != null) && (this.Model.Root != null) && (this.Model.Root.Manager != null) - && this.Model.Root.Manager.Equals(parentDockingManager)) + if( e.OriginalSource is Visual ) { - if (!e.Handled && (_model != null) && (_model.SelectedContent != null)) + var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor(); + + 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; + } } - } + } } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutCachePaneControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutCachePaneControl.cs index 45be44df..a92e2976 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutCachePaneControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutCachePaneControl.cs @@ -16,9 +16,11 @@ ***********************************************************************************/ +using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using System.Windows.Data; +using System.Linq; using Xceed.Wpf.AvalonDock.Layout; namespace Xceed.Wpf.AvalonDock.Controls @@ -96,7 +98,6 @@ namespace Xceed.Wpf.AvalonDock.Controls - } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentControl.cs index 252cffda..2e5f0b4f 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentControl.cs @@ -163,23 +163,33 @@ namespace Xceed.Wpf.AvalonDock.Controls protected override void OnPreviewMouseLeftButtonDown( MouseButtonEventArgs e ) { - var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor(); - if ((this.Model != null) && (this.Model.Root != null) && (this.Model.Root.Manager != null) - && this.Model.Root.Manager.Equals(parentDockingManager)) + if( e.OriginalSource is Visual ) { - this.SetIsActive(); + var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor(); + + if( ( this.Model != null ) && ( this.Model.Root != null ) && ( this.Model.Root.Manager != null ) + && this.Model.Root.Manager.Equals( parentDockingManager ) ) + { + this.SetIsActive(); + } } + base.OnPreviewMouseLeftButtonDown( e ); } protected override void OnPreviewMouseRightButtonDown( MouseButtonEventArgs e ) { - var parentDockingManager = ((Visual)e.OriginalSource).FindVisualAncestor(); - if ((this.Model != null) && (this.Model.Root != null) && (this.Model.Root.Manager != null) - && this.Model.Root.Manager.Equals(parentDockingManager)) + if( e.OriginalSource is Visual ) { - this.SetIsActive(); + var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor(); + + if( ( this.Model != null ) && ( this.Model.Root != null ) && ( this.Model.Root.Manager != null ) + && this.Model.Root.Manager.Equals( parentDockingManager ) ) + { + this.SetIsActive(); + } } + base.OnPreviewMouseRightButtonDown( e ); } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentFloatingWindowControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentFloatingWindowControl.cs index 47fd6b20..c66e5100 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentFloatingWindowControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentFloatingWindowControl.cs @@ -59,6 +59,9 @@ namespace Xceed.Wpf.AvalonDock.Controls { get { + if( ( _model == null ) || ( _model.Root == null ) || ( _model.Root.Manager == null ) ) + return null; + return _model.Root.Manager.GetLayoutItemFromModel( _model.RootDocument ); } } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneControl.cs index 501dde17..00cf0600 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneControl.cs @@ -93,28 +93,36 @@ namespace Xceed.Wpf.AvalonDock.Controls { base.OnMouseLeftButtonDown( e ); - var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor(); - if( ( this.Model != null ) && ( this.Model.Root != null ) && ( this.Model.Root.Manager != null ) - && this.Model.Root.Manager.Equals( parentDockingManager ) ) + if( e.OriginalSource is Visual ) { - if( !e.Handled && ( _model != null ) && ( _model.SelectedContent != null ) ) + var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor(); + + 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 ) { base.OnMouseRightButtonDown( e ); - var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor(); - if( ( this.Model != null ) && ( this.Model.Root != null ) && ( this.Model.Root.Manager != null ) - && this.Model.Root.Manager.Equals( parentDockingManager ) ) + if( e.OriginalSource is Visual ) { - if( !e.Handled && ( _model != null ) && ( _model.SelectedContent != null ) ) + var parentDockingManager = ( ( Visual )e.OriginalSource ).FindVisualAncestor(); + + 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; + } } } } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs index c7721d37..ba9a439c 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs @@ -290,6 +290,8 @@ namespace Xceed.Wpf.AvalonDock.Controls { root.FloatingWindows.Remove( this.Model as LayoutFloatingWindow ); } + + this.BringFocusOnDockingManager(); } 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().Where( control => control.Focusable ).FirstOrDefault(); + if( firstUIElement != null ) + { + firstUIElement.Focus(); + } + } + } + } + #endregion #region Private Methods diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs index ebfa1e48..4ec5413f 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs @@ -394,7 +394,7 @@ namespace Xceed.Wpf.AvalonDock.Controls trToWnd.Transform( new Point() ); double delta; - if( Orientation == System.Windows.Controls.Orientation.Horizontal ) + if( Orientation == Orientation.Horizontal ) delta = Canvas.GetLeft( _resizerGhost ) - _initialStartPoint.X; else delta = Canvas.GetTop( _resizerGhost ) - _initialStartPoint.Y; @@ -406,15 +406,18 @@ namespace Xceed.Wpf.AvalonDock.Controls var prevChildActualSize = prevChild.TransformActualSizeToAncestor(); 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 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 ) { - prevChildModel.DockWidth = new GridLength( prevChildActualSize.Width + delta, GridUnitType.Star ); + prevChildModel.DockWidth = new GridLength( ((prevChildActualSize.Width + delta) / totalActualSize.Width) * totalStarSize.Width, GridUnitType.Star ); } else { @@ -428,7 +431,7 @@ namespace Xceed.Wpf.AvalonDock.Controls { 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 { @@ -443,7 +446,7 @@ namespace Xceed.Wpf.AvalonDock.Controls { 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 { @@ -457,7 +460,7 @@ namespace Xceed.Wpf.AvalonDock.Controls { 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 { diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/DockingManager.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/DockingManager.cs index 919849e6..8a6059d2 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/DockingManager.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/DockingManager.cs @@ -2143,7 +2143,7 @@ namespace Xceed.Wpf.AvalonDock { newFW.WindowState = WindowState.Maximized; } - } ), DispatcherPriority.Send ); + } ), DispatcherPriority.DataBind ); return newFW; } @@ -2365,7 +2365,7 @@ namespace Xceed.Wpf.AvalonDock content.IsActive = true; } - internal void ShowNavigatorWindow() + protected internal virtual void ShowNavigatorWindow() { if( _navigatorWindow == null ) { @@ -3259,6 +3259,8 @@ namespace Xceed.Wpf.AvalonDock contentModelAsAnchorable.IsAutoHidden ) contentModelAsAnchorable.ToggleAutoHide(); + this.UpdateStarSize( contentModel ); + var parentPane = contentModel.Parent as ILayoutPane; var parentPaneAsPositionableElement = contentModel.Parent as ILayoutPositionableElement; var parentPaneAsWithActualSize = contentModel.Parent as ILayoutPositionableElementWithActualSize; @@ -3351,6 +3353,66 @@ namespace Xceed.Wpf.AvalonDock 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().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().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 ) { var anchorableContextMenu = sender as ContextMenu; diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Extentions.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Extentions.cs index 7b42596f..7128646a 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Extentions.cs +++ b/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( currentChildID < 0 ) + { 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 { if( currentChildID < 0 ) + { 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; + } } } } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/ILayoutInitialContainer.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/ILayoutInitialContainer.cs new file mode 100644 index 00000000..a2f7ea7b --- /dev/null +++ b/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; + } + } +} diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutAnchorable.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutAnchorable.cs index ac5f677c..c5f77504 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutAnchorable.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutAnchorable.cs @@ -415,14 +415,16 @@ namespace Xceed.Wpf.AvalonDock.Layout RaisePropertyChanging( "IsHidden" ); 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; - PreviousContainer = parentAsGroup; - if( parentAsGroup != null ) - { - PreviousContainerIndex = parentAsGroup.IndexOfChild( this ); - } + this.PreviousContainerIndex = parentAsGroup.IndexOfChild( this ); } if( this.Root != null ) { @@ -478,8 +480,13 @@ namespace Xceed.Wpf.AvalonDock.Layout } } - PreviousContainer = null; - PreviousContainerIndex = -1; + // When InitialContainer exists, set it to PreviousContainer in order to dock in expected position. + 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( "IsHidden" ); diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutContent.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutContent.cs index 0d9815f8..e614ecd7 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutContent.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutContent.cs @@ -29,7 +29,7 @@ namespace Xceed.Wpf.AvalonDock.Layout { [ContentProperty( "Content" )] [Serializable] - public abstract class LayoutContent : LayoutElement, IXmlSerializable, ILayoutElementForFloatingWindow, IComparable, ILayoutPreviousContainer + public abstract class LayoutContent : LayoutElement, IXmlSerializable, ILayoutElementForFloatingWindow, IComparable, ILayoutPreviousContainer, ILayoutInitialContainer { #region Constructors @@ -311,6 +311,66 @@ namespace Xceed.Wpf.AvalonDock.Layout #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 [field: NonSerialized] private int _previousContainerIndex = -1; @@ -333,6 +393,28 @@ namespace Xceed.Wpf.AvalonDock.Layout #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 private DateTime? _lastActivationTimeStamp = null; @@ -655,6 +737,10 @@ namespace Xceed.Wpf.AvalonDock.Layout PreviousContainerId = reader.Value; if( reader.MoveToAttribute( "PreviousContainerIndex" ) ) 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" ) ) FloatingLeft = double.Parse( reader.Value, CultureInfo.InvariantCulture ); @@ -726,6 +812,15 @@ namespace Xceed.Wpf.AvalonDock.Layout 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(); } - - Root.CollectGarbage(); - + if( this.Root != null ) + { + Root.CollectGarbage(); + } } + #endregion #region Internal Methods @@ -908,6 +1005,7 @@ namespace Xceed.Wpf.AvalonDock.Layout Closing( this, args ); } + 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. public event EventHandler Closing; - #endregion + +#endregion } } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs index 35c173eb..3496ae6a 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs @@ -440,6 +440,11 @@ namespace Xceed.Wpf.AvalonDock.Layout { content.PreviousContainer = null; } + foreach( var content in this.Descendents().OfType().Where( c => c.InitialContainer != null && + ( c.InitialContainer.Parent == null || c.InitialContainer.Parent.Root != this ) ) ) + { + content.InitialContainer = null; + } //for each pane that is empty foreach( var emptyPane in this.Descendents().OfType().Where( p => p.ChildrenCount == 0 ) ) @@ -462,7 +467,8 @@ namespace Xceed.Wpf.AvalonDock.Layout continue; //...if this empty panes is not referenced by anyone, than removes it from its parent container - if( !this.Descendents().OfType().Any( c => c.PreviousContainer == emptyPane ) ) + if( !this.Descendents().OfType().Any( c => c.PreviousContainer == emptyPane ) + && !this.Descendents().OfType().Any( c => c.InitialContainer == emptyPane ) ) { var parentGroup = emptyPane.Parent as ILayoutContainer; parentGroup.RemoveChild( emptyPane ); @@ -493,7 +499,8 @@ namespace Xceed.Wpf.AvalonDock.Layout foreach( var emptyPaneGroup in this.Descendents().OfType().Where( p => p.ChildrenCount == 0 ) ) { //...if this empty layout panel is not referenced by anyone, than removes it from its parent container - if( !this.Descendents().OfType().Any( c => c.PreviousContainer == emptyPaneGroup ) ) + if( !this.Descendents().OfType().Any( c => c.PreviousContainer == emptyPaneGroup ) + && !this.Descendents().OfType().Any( c => c.InitialContainer == emptyPaneGroup ) ) { var parentGroup = emptyPaneGroup.Parent as ILayoutContainer; parentGroup.RemoveChild( emptyPaneGroup ); @@ -509,7 +516,8 @@ namespace Xceed.Wpf.AvalonDock.Layout foreach( var emptyPaneGroup in this.Descendents().OfType().Where( p => p.ChildrenCount == 0 ) ) { //...if this empty floating window is not referenced by anyone, than removes it from its parent container - if( !this.Descendents().OfType().Any( c => c.PreviousContainer == emptyPaneGroup ) ) + if( !this.Descendents().OfType().Any( c => c.PreviousContainer == emptyPaneGroup ) + && !this.Descendents().OfType().Any( c => c.InitialContainer == emptyPaneGroup ) ) { var parentGroup = emptyPaneGroup.Parent as ILayoutContainer; parentGroup.RemoveChild( emptyPaneGroup ); @@ -525,7 +533,8 @@ namespace Xceed.Wpf.AvalonDock.Layout foreach( var emptyPaneGroup in this.Descendents().OfType().Where( p => p.ChildrenCount == 0 ) ) { //...if this empty Pane Group is not referenced by anyone, than removes it from its parent container - if( !this.Descendents().OfType().Any( c => c.PreviousContainer == emptyPaneGroup ) ) + if( !this.Descendents().OfType().Any( c => c.PreviousContainer == emptyPaneGroup ) + && !this.Descendents().OfType().Any( c => c.InitialContainer == emptyPaneGroup ) ) { var parentGroup = emptyPaneGroup.Parent as ILayoutContainer; parentGroup.RemoveChild( emptyPaneGroup ); diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Serialization/LayoutSerializer.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Serialization/LayoutSerializer.cs index 67841f3f..da0f7b00 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Serialization/LayoutSerializer.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/Serialization/LayoutSerializer.cs @@ -76,6 +76,15 @@ namespace Xceed.Wpf.AvalonDock.Layout.Serialization lcToAttach.PreviousContainer = paneContainerToAttach as ILayoutContainer; } + foreach( var lcToAttach in layout.Descendents().OfType().Where( lc => lc.InitialContainerId != null ) ) + { + var paneContainerToAttach = layout.Descendents().OfType().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 foreach( var lcToFix in layout.Descendents().OfType().Where( lc => lc.Content == null ).ToArray() ) diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.Designer.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.Designer.cs index 26308f9e..128084ee 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.Designer.cs +++ b/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. // To add or remove a member, edit your .ResX file then rerun ResGen // 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.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class Resources { @@ -96,7 +96,7 @@ namespace Xceed.Wpf.AvalonDock.Properties { } /// - /// Looks up a localized string similar to Hide. + /// Looks up a localized string similar to Hide All. /// public static string Anchorable_BtnClose_Hint { get { diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.cs-CZ.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.cs-CZ.resx index bd0c4a5c..3f2ca77c 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.cs-CZ.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.cs-CZ.resx @@ -124,7 +124,7 @@ Skrývat automaticky - Skrýt + Schovat vše Pozice okna diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.de.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.de.resx index b0800844..99758eb7 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.de.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.de.resx @@ -124,7 +124,7 @@ Automatisch im Hintergrund - Schließen + Versteck alles Fensterposition diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.es.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.es.resx index 9b2cf65c..12b0d3d6 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.es.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.es.resx @@ -124,7 +124,7 @@ Esconder Automáticamente - Esconder + Ocultar todo Posición de Ventana diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.fr.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.fr.resx index 8acbf362..a18b2d3e 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.fr.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.fr.resx @@ -124,7 +124,7 @@ Cacher Automatiquement - Cacher + Cacher Tout Position de la Fenêtre diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.hu.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.hu.resx index 54d0bcae..4c6bd342 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.hu.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.hu.resx @@ -127,7 +127,7 @@ Elrejtés - Elhelyezkedés + Rejtsd el mindet Dokkolás diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.it.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.it.resx index d72bc67a..16ed4252 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.it.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.it.resx @@ -124,7 +124,7 @@ Nascondi Automaticamente - Nascondi + Nascondi tutto Posizione della Finestra diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.Designer.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.Designer.cs new file mode 100644 index 00000000..6a519dc1 --- /dev/null +++ b/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 + + ***********************************************************************************/ + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.resx new file mode 100644 index 00000000..458ffe64 --- /dev/null +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ja-JP.resx @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 自動的に隠す + + + 自動的に隠す + + + すべて非表示 + + + ウィンドウの位置 + + + ドッキング + + + タブ付きドキュメントとしてドッキング + + + フローティング + + + 非表示 + + + ピンステータスを切り替える + + + 閉じる + + + すべて閉じる + + + このウィンドウ以外すべて閉じる + + + ウィンドウの位置 + + + タブ付きドキュメントとしてドッキング + + + フローティング + + + 次のタブグループに移動 + + + 前のタブグループに移動 + + + 新しい水平タブグループ + + + 新しい垂直タブグループ + + + 最大化 + + + 元に戻す + + \ No newline at end of file diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.pt-BR.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.pt-BR.resx index 5e2b95aa..75d326a6 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.pt-BR.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.pt-BR.resx @@ -124,7 +124,7 @@ Esconder Automaticamente - Esconder + Esconda tudo Posição da Janela @@ -177,4 +177,4 @@ Recuperar - + \ No newline at end of file diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.resx index 67b1d132..2bd9da78 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.resx @@ -124,7 +124,7 @@ Auto Hide - Hide + Hide All Window Position diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ro.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ro.resx index db258c18..e2bb72ac 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ro.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ro.resx @@ -124,7 +124,7 @@ Ascunde automat - Ascunde + Ascunde tot Poziția ferestrei diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ru.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ru.resx index 247500ec..12288ba2 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ru.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.ru.resx @@ -124,7 +124,7 @@ Скрывать Автоматически - Скрыть + Скрыть все Положение Окна diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.sv.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.sv.resx index cccac740..8195fabd 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.sv.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.sv.resx @@ -124,7 +124,7 @@ Dölj automatiskt - Dölj + Göm alla Fönsterposition diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.zh-Hans.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.zh-Hans.resx index 8e23cb98..f4d05a2b 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.zh-Hans.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/Resources.zh-Hans.resx @@ -124,7 +124,7 @@ 自动隐藏 - 隐藏 + 全部藏起来 窗口位置 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Default.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Default.xaml new file mode 100644 index 00000000..f129d47d --- /dev/null +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Default.xaml @@ -0,0 +1,1438 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinAutoHide_White.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinAutoHide_White.png new file mode 100644 index 0000000000000000000000000000000000000000..2828964b9255c6c447cfff91575dd435ce6e3e14 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@q#X;^)4C~IxyaaMs(j9#r85lP9 zbN@+X1@buyJR*x382Ao@Fyrz36)8YL2TvEr5RKsE1=0yEmkK_}b1d+&NMK>o5ayY& zz=VrIlZjD7oH^mD3kOe;ug1KiVnqfG`Uwvh<}-fzEG*g3$jESf6_04ClI~fcSqz@8 KelF{r5}E*stt}w{ literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinClose_White.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinClose_White.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7b7cdfd46116eaf27c5cd46ef528f64ea270a8 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@q#X;^)4C~IxyaaMs(j9#r85lP9 zbN@+X1@buyJR*x382Ao@Fyrz36)8Z$08bak5RKroy`EeQ3OvlK|Nr0YJ+muGU{6Q! z%SkOas<{gE6g+*q_LL|bc&v6!cft(r&4#8C>@zEmigiuPm=Udd_rk-HikAwrL?)i= d-JcM~c=uoQrsG%oz5~r>@O1TaS?83{1ON)NKf?e3 literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinDocMenu_White.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinDocMenu_White.png new file mode 100644 index 0000000000000000000000000000000000000000..afd82d9d9d434261f044e9d4bc08f577fb3e02b0 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@q#X;^)4C~IxyaaMs(j9#r85lP9 zbN@+X1@buyJR*x382Ao@Fyrz36)8YLTTd6q5RKqui8~E~Ud;#V6&j2-GPx-*T=Yq} zw}3U}C#S10$Ae28ml>EOW;rm#DsN)j!>~kFVdQ I&MBb@0DQVGR{#J2 literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMaximize_White.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMaximize_White.png new file mode 100644 index 0000000000000000000000000000000000000000..6f745b4ded9259966aaec740c01ab1b59906a876 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@q#X;^)4C~IxyaaMs(j9#r85lP9 zbN@+X1@buyJR*x382Ao@Fyrz36)8YLdrud~5RKsE1=0yEmw5g+GMqZXDbdK_V%%8y zgvrTF@$}?WVLRV~|BIM&W<@MC@q3*8lTMBOlqlYqw!_LJF!UhIFYZZn6SZ;W#0W^Za)78&qol`;+0P^N3 AL;wH) literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinRestore_White.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinRestore_White.png new file mode 100644 index 0000000000000000000000000000000000000000..271712270837441a40e18b5bf67c5f1339618d4b GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@q#X;^)4C~IxyaaMs(j9#r85lP9 zbN@+X1@buyJR*x382Ao@Fyrz36)8Z$5KkA!5RKqu1$G0cOp71 literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/generic.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/generic.xaml index dd7c9a3e..7804e2af 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/generic.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/generic.xaml @@ -17,1424 +17,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Xceed.Wpf.AvalonDock.csproj b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Xceed.Wpf.AvalonDock.csproj index fb7edb64..fbee76a2 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Xceed.Wpf.AvalonDock.csproj +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Xceed.Wpf.AvalonDock.csproj @@ -165,6 +165,7 @@ + @@ -204,6 +205,11 @@ Code + + Resources.ja-JP.resx + True + True + Resources.cs-CZ.resx True @@ -272,6 +278,11 @@ + + PublicResXFileCodeGenerator + Resources.ja-JP.Designer.cs + Designer + PublicResXFileCodeGenerator Resources.cs-CZ.Designer.cs @@ -364,6 +375,10 @@ + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -375,6 +390,22 @@ Xceed.Wpf.Toolkit + + + + + + + + + + + + + + + + - + @@ -45,4 +46,9 @@ + + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/BusyIndicator/Resources/Common.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/BusyIndicator/Resources/Common.xaml index 8670444f..a9029f32 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/BusyIndicator/Resources/Common.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/BusyIndicator/Resources/Common.xaml @@ -19,7 +19,8 @@ xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"> - + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Panels/Views/SwitchPanelView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Panels/Views/SwitchPanelView.xaml index c1621760..5b7617e3 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Panels/Views/SwitchPanelView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Panels/Views/SwitchPanelView.xaml @@ -185,8 +185,8 @@ - @@ -250,8 +250,8 @@ - diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/MultiLineTextEditorView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/MultiLineTextEditorView.xaml index fcb6e447..cf646370 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/MultiLineTextEditorView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/MultiLineTextEditorView.xaml @@ -33,7 +33,7 @@ diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingAvalonDockView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingAvalonDockView.xaml index 84d5f1bb..904051ec 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingAvalonDockView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingAvalonDockView.xaml @@ -27,7 +27,7 @@ - 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. + 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. Some features of this sample are only available in the "Plus" version. diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingDataGridView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingDataGridView.xaml index fe4f522a..4e92526d 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingDataGridView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingDataGridView.xaml @@ -27,7 +27,7 @@ x:Name="_demo"> - 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. + 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. This feature is only available in the "Plus" version. diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingExtendedToolkitView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingExtendedToolkitView.xaml index 4040456b..ce93afda 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingExtendedToolkitView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingExtendedToolkitView.xaml @@ -25,7 +25,7 @@ x:Name="_demo"> - 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. + 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. This feature is only available in the "Plus" version. diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingListBoxView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingListBoxView.xaml index 7eb65432..c90972e0 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingListBoxView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Theming/Views/ThemingListBoxView.xaml @@ -30,7 +30,7 @@ Dress Up Your App in Style in Minutes - 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. + 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. This feature is only available in the "Plus" version. diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Window/Views/WindowContainerView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Window/Views/WindowContainerView.xaml index 5da11918..ffca2bb8 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Window/Views/WindowContainerView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Window/Views/WindowContainerView.xaml @@ -66,7 +66,8 @@ - + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Zoombox/Views/ZoomboxView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Zoombox/Views/ZoomboxView.xaml index 8c876de9..f3832ef8 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Zoombox/Views/ZoomboxView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Zoombox/Views/ZoomboxView.xaml @@ -39,7 +39,7 @@ PvUvTbf{zA^!1G~BQdb=}mi`ImN%W}2PJ+h`%+jr9$fjg#=XMMF(4^HJ-#&&>v zo<{Q)#tvU2$s4A1PyZ`d%ybGQ^^1T literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Images/Duplicate_White.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Images/Duplicate_White.png new file mode 100644 index 0000000000000000000000000000000000000000..c5eba0be337cc346f7a5c8304927b4c715cd33ba GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!9Y(J#}Etu + + + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Implementation/MaskedTextBox.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Implementation/MaskedTextBox.cs index 6d9af2f6..6090a9ff 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Implementation/MaskedTextBox.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Implementation/MaskedTextBox.cs @@ -1333,7 +1333,7 @@ namespace Xceed.Wpf.Toolkit provider.IncludeLiterals = true; provider.IncludePrompt = true; - provider.IsPassword = false; + provider.IsPassword = false; return provider; } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Images/Notes16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Images/Notes16.png deleted file mode 100644 index ebfaee36af66ee4d7f6628b7a77c67c812f688ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 601 zcmV-f0;c_mP)#tDU#AZ0t#XZ6VXBt3&m8L z#3GOqXd$iA|_GqZsyJSW_E_z&LRsR-+S|RzxU0X-HouuOKWX8c6r8e z5Ds~W18atI(7u?tGCV~_Idow}Hn4F7X8(jvTy(Z<%O5$kvmHR4b9;N-JyZ~PE*u2B zynn#5YppedSw-l%pGVK}7QCMR`tEG!?!y3T8RJNivYpdVj!*SH!quTskOGJR$pytQ z4w{>`wB33(GXbC>HbTBzFq4S9d|R^od9GrGJftFAd;Gxo-d)jZ7=rhYO-syUly@_YYwD= zO&iu(m7gnBNGV}7Vn3rgIUPrn#WMOYc0nm% - + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Generic.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Generic.xaml index 7d87c194..3cdc4e73 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Generic.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Generic.xaml @@ -28,11 +28,10 @@ - + r#DWU%eKN~Ucs|%W{fdY9Cy}+%f`(;vO_7|OXj(ro9g7Ph3fu1UB{UgFiTZy z9nxpmc7&68=dtO3K5)*jOHw#@&86#5&*Kt9;j|v@^@3{-^_)6kns)d>k+&s-O_Py; UeTLw2pc@!GUHx3vIVCg!03O*+3;+NC literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/ClearFilter16_White.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/ClearFilter16_White.png new file mode 100644 index 0000000000000000000000000000000000000000..df9e5b2d910f85c1aceb9086977c9defa21fb45d GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!CFrj#}EtuwUaOMH7IbnZvFrN`J+v-PA;iy zKL>PvUvTbf{zA^!1G~BQdb=}mi`ImN%W}2PJ+h`%+jr9$fjg#=XMMF(4^HJ-#&&>v zo<{Q)#tvU2$s4A1PyZ`d%ybGQ^^1T literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/SortAscending16_White.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Images/SortAscending16_White.png new file mode 100644 index 0000000000000000000000000000000000000000..a23f2f374f5f0dadf84760c9ab045f1e48633766 GIT binary patch literal 369 zcmV-%0gnEOP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0R~A#K~y+Tt&*{^ z!Y~Ym4HJY3U<1PhrlAfEXcmWH16TH6OqcaCw!fNi?NFoBwU%0v){Cs&)i5Ymocu zujc^H?X>LaGP$`G?;NKO)xpa4Q`fkbhd)>p*Zvs10Cx(qd9SXRp{5X7b9SDiT$6E> zrK|WF|KzI errors = Validation.GetErrors( descriptor ); - Validation.MarkInvalid( be, errors[ 0 ] ); + this.Dispatcher.BeginInvoke( DispatcherPriority.Input, new Action( () => + { + var errors = Validation.GetErrors( descriptor ); + Validation.MarkInvalid( be, errors[ 0 ] ); + } + ) ); } } } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bold_White16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bold_White16.png new file mode 100644 index 0000000000000000000000000000000000000000..8bb9010d07b50403f581e52cf66b8b39ac278780 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucK_5>S#}Etuw-*e#7!){I1K$2CU)Pi0(dn$q zy4O`$r1#$O4(GQM+IBcw>9Sh8NH3bD)p5IzeTjNSUG2m?1zx7}1wT^jC*0M4V>w?b ZYtIS^;aM3+JAvjhc)I$ztaD0e0svAKIc@*| literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bullets_White16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bullets_White16.png new file mode 100644 index 0000000000000000000000000000000000000000..3bc7f781bf89d01292197da5ce574d33d7a3966b GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucK_gEW#}Etuzopr0OQ~%iU0rr literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/CenterAlign_White16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/CenterAlign_White16.png new file mode 100644 index 0000000000000000000000000000000000000000..c505e96ac95f7fcc449be2f9ea0b0288f5232425 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucK`l=g#}EtuWQl?UKjb+Ui@G pkzFlWW`_@CNc6NFOkm*QVel!CU{6eJQ~~N@@O1TaS?83{1OO+YCx`$5 literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/FontColorPicker_White16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/FontColorPicker_White16.png new file mode 100644 index 0000000000000000000000000000000000000000..04459ac2d9f16729224d9780bd30e827df53bc73 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!2(Yg#}Etux99JQHYjkgCge1kWlwR-KEibF zZ1b^x<}Z6Y)XbNhIvcRdY|Xk=ku8kJE8l8dUeNY6IWLRnsX}d&sP99zJ=34Acj9M0 zE$njVOGZqf?~=1jxA~4I7EF)5#L~7_>exp4w=0S#Ys~)??fQiwsLL^V)7kSEfOa!@ My85}Sb4q9e0JeEg{Qv*} literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Italic_White16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Italic_White16.png new file mode 100644 index 0000000000000000000000000000000000000000..9867d8350eff85c47a534576f229f17d722050c6 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucK`&1i#}EtuWQku5f?mn2{~H-jwJ^IWG#GU< zD>yqaoI1+j6EMq+AMwtP*}em4Dubu1pUXO@geCwLMKyB( literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/LeftAlign_White16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/LeftAlign_White16.png new file mode 100644 index 0000000000000000000000000000000000000000..231dca6ee624681a5e0d76f231c526b4cd85c2f1 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucK`l=g#}EtuWQl?U97_L~8E3S!8!$0W@r-rY p!hM19YK(~#+u}q62?l0n2A>NO>;=7lGJv`mJYD@<);T3K0RXkwB^dw! literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Numbering_White16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Numbering_White16.png new file mode 100644 index 0000000000000000000000000000000000000000..52ff6792fba32c9d3eb8d65f4bba264beff9935b GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!EjF(#}Etuz5R|{3(i5pGf;aO@q zrO{eyt6@v1-9ZbJGfa6C1aJMD$J?;^--11j*=-)IVO58DPqQeUiq{CfmtgLkbU3W) kvBWgaRt1i0pVeK2Z|<@G;4sUu3upy{r>mdKI;Vst0Fk^r=>Px# literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/RightAlign_White16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/RightAlign_White16.png new file mode 100644 index 0000000000000000000000000000000000000000..02aeaeaea61550329f30f2b283fbf6ab860d7eab GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucK}}B=#}EtuWQl?UKjb+UPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0R>4!K~y+T?UFHe zgD?z+1t;(g>KnvkH|SJG-vExllDXWVZ0%^aZq1lZb+%+9H}IHIV>cHI6NsU&d71OQ zrzcy_zbwg)5K9XILMUk4!tZ(*t0TX>Aol($Uf#Y_J0V|xN>Crta?Z%y+Ep~{r?F5x z0OnNEfk8O+LvnZKFXDD@sAp#(GUMbC8Tk;A6;E+lY8qHLG{v1Mh3fu0LFLq@0oS!o;J|iN4F#t*O>LVlPn?18<#2)~??ZhI5-J$W( zo>07qdhaHV8!|MNRjRU#v5T^&%zjs071WYBVb_K;1NI^L|K>Zl0`LoZ8RE$`q_p4w O0000lGS|4mJpKZ0K~H zd4th|nZsdc0)wcNU^AndhOe1~DMLTwhJfRuzYH2o{WfMQN&J7pv`14=dcjQZ6D&MD Z42C-DKOQNZngleM!PC{xWt~$(698e+GnD`U literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/RichTextBoxFormatBarManager.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/RichTextBoxFormatBarManager.cs index 4ed4fd8d..1261b073 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/RichTextBoxFormatBarManager.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/RichTextBoxFormatBarManager.cs @@ -174,7 +174,9 @@ namespace Xceed.Wpf.Toolkit void ShowAdorner() { if( _adorner.Visibility == Visibility.Visible ) - return; + { + HideAdorner(); + } VerifyAdornerLayer(); diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Themes/Generic.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Themes/Generic.xaml index d730b4c1..f32dda2a 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Themes/Generic.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Themes/Generic.xaml @@ -21,7 +21,15 @@ - + + + + + + + + + @@ -32,11 +40,11 @@ - + - - + + @@ -57,9 +65,10 @@ - - + + + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Wizard/Implementation/Wizard.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Wizard/Implementation/Wizard.cs index 8094559b..e9c77172 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Wizard/Implementation/Wizard.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Wizard/Implementation/Wizard.cs @@ -22,11 +22,18 @@ using System.Windows.Controls; using System.Windows.Input; using System.Windows.Interop; using Xceed.Wpf.Toolkit.Core; +using System.ComponentModel; namespace Xceed.Wpf.Toolkit { public class Wizard : ItemsControl { + #region Private Members + + private bool? _dialogResult = null; + + #endregion + #region Properties 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 if( ComponentDispatcher.IsThreadModal ) - window.DialogResult = dialogResult; + { + _dialogResult = dialogResult; + window.Closing += this.Window_Closing; + } 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() { bool exists = false; diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj index fbb5bf84..eff47f1a 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj @@ -739,9 +739,6 @@ - - - @@ -948,6 +945,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +