Browse Source

Merge 9ac7fa9b0e into da2c53050c

pull/1195/merge
kobyduck 8 years ago
committed by GitHub
parent
commit
4eb50f7739
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneGroupControl.cs
  2. 4
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneGroupControl.cs
  3. 66
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutPanelControl.cs
  4. 1
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/ILayoutPositionableElement.cs
  5. 24
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutPositionableGroup.cs

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

@ -43,7 +43,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
for (int i = 0; i < _model.Children.Count; i++)
{
var childModel = _model.Children[i] as ILayoutPositionableElement;
if (!childModel.DockWidth.IsStar)
if (childModel.ForceFixedDockSize && !childModel.DockWidth.IsStar)
{
childModel.DockWidth = new GridLength(1.0, GridUnitType.Star);
}
@ -54,7 +54,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
for (int i = 0; i < _model.Children.Count; i++)
{
var childModel = _model.Children[i] as ILayoutPositionableElement;
if (!childModel.DockHeight.IsStar)
if (childModel.ForceFixedDockSize && !childModel.DockHeight.IsStar)
{
childModel.DockHeight = new GridLength(1.0, GridUnitType.Star);
}

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

@ -42,7 +42,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
for (int i = 0; i < _model.Children.Count; i++)
{
var childModel = _model.Children[i] as ILayoutPositionableElement;
if (!childModel.DockWidth.IsStar)
if (childModel.ForceFixedDockSize && !childModel.DockWidth.IsStar)
{
childModel.DockWidth = new GridLength(1.0, GridUnitType.Star);
}
@ -53,7 +53,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
for (int i = 0; i < _model.Children.Count; i++)
{
var childModel = _model.Children[i] as ILayoutPositionableElement;
if (!childModel.DockHeight.IsStar)
if (childModel.ForceFixedDockSize && !childModel.DockHeight.IsStar)
{
childModel.DockHeight = new GridLength(1.0, GridUnitType.Star);
}

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

@ -52,24 +52,24 @@ namespace Xceed.Wpf.AvalonDock.Controls
var childContainerModel = _model.Children[i] as ILayoutContainer;
var childPositionableModel = _model.Children[i] as ILayoutPositionableElement;
if (childContainerModel != null &&
(childContainerModel.IsOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>() ||
childContainerModel.ContainsChildOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>()))
if (childPositionableModel.ForceFixedDockSize)
{
childPositionableModel.DockWidth = new GridLength(1.0, GridUnitType.Star);
}
else if (childPositionableModel != null && childPositionableModel.DockWidth.IsStar)
{
var childPositionableModelWidthActualSize = childPositionableModel as ILayoutPositionableElementWithActualSize;
var widthToSet = Math.Max(childPositionableModelWidthActualSize.ActualWidth, childPositionableModel.DockMinWidth);
widthToSet = Math.Min(widthToSet, ActualWidth / 2.0);
widthToSet = Math.Max(widthToSet, childPositionableModel.DockMinWidth);
childPositionableModel.DockWidth = new GridLength(
widthToSet,
GridUnitType.Pixel);
if (childContainerModel != null &&
(childContainerModel.IsOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>() ||
childContainerModel.ContainsChildOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>())) {
childPositionableModel.DockWidth = new GridLength(1.0, GridUnitType.Star);
} else if (childPositionableModel != null && childPositionableModel.DockWidth.IsStar) {
var childPositionableModelWidthActualSize = childPositionableModel as ILayoutPositionableElementWithActualSize;
var widthToSet = Math.Max(childPositionableModelWidthActualSize.ActualWidth, childPositionableModel.DockMinWidth);
widthToSet = Math.Min(widthToSet, ActualWidth / 2.0);
widthToSet = Math.Max(widthToSet, childPositionableModel.DockMinWidth);
childPositionableModel.DockWidth = new GridLength(
widthToSet,
GridUnitType.Pixel);
}
}
}
}
@ -78,7 +78,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
for (int i = 0; i < _model.Children.Count; i++)
{
var childPositionableModel = _model.Children[i] as ILayoutPositionableElement;
if (!childPositionableModel.DockWidth.IsStar)
if (childPositionableModel.ForceFixedDockSize && !childPositionableModel.DockWidth.IsStar)
{
childPositionableModel.DockWidth = new GridLength(1.0, GridUnitType.Star);
}
@ -94,21 +94,21 @@ namespace Xceed.Wpf.AvalonDock.Controls
var childContainerModel = _model.Children[i] as ILayoutContainer;
var childPositionableModel = _model.Children[i] as ILayoutPositionableElement;
if (childContainerModel != null &&
(childContainerModel.IsOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>() ||
childContainerModel.ContainsChildOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>()))
if (childPositionableModel.ForceFixedDockSize)
{
childPositionableModel.DockHeight = new GridLength(1.0, GridUnitType.Star);
}
else if (childPositionableModel != null && childPositionableModel.DockHeight.IsStar)
{
var childPositionableModelWidthActualSize = childPositionableModel as ILayoutPositionableElementWithActualSize;
var heightToSet = Math.Max(childPositionableModelWidthActualSize.ActualHeight, childPositionableModel.DockMinHeight);
heightToSet = Math.Min(heightToSet, ActualHeight / 2.0);
heightToSet = Math.Max(heightToSet, childPositionableModel.DockMinHeight);
childPositionableModel.DockHeight = new GridLength(heightToSet, GridUnitType.Pixel);
if (childContainerModel != null &&
(childContainerModel.IsOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>() ||
childContainerModel.ContainsChildOfType<LayoutDocumentPane, LayoutDocumentPaneGroup>())) {
childPositionableModel.DockHeight = new GridLength(1.0, GridUnitType.Star);
} else if (childPositionableModel != null && childPositionableModel.DockHeight.IsStar) {
var childPositionableModelWidthActualSize = childPositionableModel as ILayoutPositionableElementWithActualSize;
var heightToSet = Math.Max(childPositionableModelWidthActualSize.ActualHeight, childPositionableModel.DockMinHeight);
heightToSet = Math.Min(heightToSet, ActualHeight / 2.0);
heightToSet = Math.Max(heightToSet, childPositionableModel.DockMinHeight);
childPositionableModel.DockHeight = new GridLength(heightToSet, GridUnitType.Pixel);
}
}
}
}
@ -117,7 +117,7 @@ namespace Xceed.Wpf.AvalonDock.Controls
for (int i = 0; i < _model.Children.Count; i++)
{
var childPositionableModel = _model.Children[i] as ILayoutPositionableElement;
if (!childPositionableModel.DockHeight.IsStar)
if (childPositionableModel.ForceFixedDockSize && !childPositionableModel.DockHeight.IsStar)
{
childPositionableModel.DockHeight = new GridLength(1.0, GridUnitType.Star);
}

1
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/ILayoutPositionableElement.cs

@ -42,6 +42,7 @@ namespace Xceed.Wpf.AvalonDock.Layout
bool AllowDuplicateContent { get; set; }
bool IsVisible { get; }
bool ForceFixedDockSize { get; }
}

24
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutPositionableGroup.cs

@ -76,7 +76,29 @@ namespace Xceed.Wpf.AvalonDock.Layout
}
protected virtual void OnDockHeightChanged()
{
{
}
bool _forceFixedDockSize;
public bool ForceFixedDockSize
{
get {
return _forceFixedDockSize;
}
set {
if (ForceFixedDockSize != value) {
RaisePropertyChanging("ForceFixedDockSize");
_forceFixedDockSize = value;
RaisePropertyChanging("ForceFixedDockSize");
OnForceFixedDockSizeChanged();
}
}
}
protected virtual void OnForceFixedDockSizeChanged()
{
}

Loading…
Cancel
Save