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 00000000..2828964b Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinAutoHide_White.png differ 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 00000000..1b7b7cdf Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinClose_White.png differ 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 00000000..afd82d9d Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinDocMenu_White.png differ 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 00000000..6f745b4d Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMaximize_White.png differ diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMenu_White.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMenu_White.png new file mode 100644 index 00000000..520f3d2f Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinMenu_White.png differ 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 00000000..27171227 Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Themes/Generic/Images/PinRestore_White.png differ 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 @@ + + + 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 ebfaee36..00000000 Binary files a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Images/Notes16.png and /dev/null differ diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Aero2.NormalColor.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Aero2.NormalColor.xaml index 1fc7c6a6..97215885 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Aero2.NormalColor.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MultiLineTextEditor/Themes/Aero2.NormalColor.xaml @@ -30,11 +30,10 @@ - + 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 @@ - + 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 00000000..8bb9010d Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bold_White16.png differ 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 00000000..3bc7f781 Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Bullets_White16.png differ 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 00000000..c505e96a Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/CenterAlign_White16.png differ 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 00000000..04459ac2 Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/FontColorPicker_White16.png differ 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 00000000..9867d835 Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Italic_White16.png differ 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 00000000..231dca6e Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/LeftAlign_White16.png differ 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 00000000..52ff6792 Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Numbering_White16.png differ 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 00000000..02aeaeae Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/RightAlign_White16.png differ diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/TextHighlightColorPicker_White16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/TextHighlightColorPicker_White16.png new file mode 100644 index 00000000..9bbf1654 Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/TextHighlightColorPicker_White16.png differ diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Underline_White16.png b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Underline_White16.png new file mode 100644 index 00000000..69e3440d Binary files /dev/null and b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/Images/Underline_White16.png differ 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +