From 7802d00c127ca28327b07a1d452aba313c6facd8 Mon Sep 17 00:00:00 2001 From: John Stewien Date: Thu, 17 Aug 2017 16:23:36 +0930 Subject: [PATCH] AvalonDock fixed crash when shrinking auto-sized panel --- .../Controls/LayoutGridControl.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs index c4fc3bfa..94d4f831 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs @@ -386,6 +386,10 @@ namespace Xceed.Wpf.AvalonDock.Controls { prevChildModel.DockWidth = new GridLength(prevChildModel.DockWidth.Value * (prevChildActualSize.Width + delta) / prevChildActualSize.Width, GridUnitType.Star); } + else if (prevChildModel.DockWidth.IsAuto) + { + prevChildModel.DockWidth = new GridLength(prevChildActualSize.Width + delta, GridUnitType.Pixel); + } else { prevChildModel.DockWidth = new GridLength(prevChildModel.DockWidth.Value + delta, GridUnitType.Pixel); @@ -395,6 +399,10 @@ namespace Xceed.Wpf.AvalonDock.Controls { nextChildModel.DockWidth = new GridLength(nextChildModel.DockWidth.Value * (nextChildActualSize.Width - delta) / nextChildActualSize.Width, GridUnitType.Star); } + else if (nextChildModel.DockWidth.IsAuto) + { + nextChildModel.DockWidth = new GridLength(nextChildActualSize.Width - delta, GridUnitType.Pixel); + } else { nextChildModel.DockWidth = new GridLength(nextChildModel.DockWidth.Value - delta, GridUnitType.Pixel); @@ -406,6 +414,10 @@ namespace Xceed.Wpf.AvalonDock.Controls { prevChildModel.DockHeight = new GridLength(prevChildModel.DockHeight.Value * (prevChildActualSize.Height + delta) / prevChildActualSize.Height, GridUnitType.Star); } + else if (prevChildModel.DockHeight.IsAuto) + { + prevChildModel.DockHeight = new GridLength(prevChildActualSize.Height + delta, GridUnitType.Pixel); + } else { prevChildModel.DockHeight = new GridLength(prevChildModel.DockHeight.Value + delta, GridUnitType.Pixel); @@ -415,6 +427,10 @@ namespace Xceed.Wpf.AvalonDock.Controls { nextChildModel.DockHeight = new GridLength(nextChildModel.DockHeight.Value * (nextChildActualSize.Height - delta) / nextChildActualSize.Height, GridUnitType.Star); } + else if (nextChildModel.DockHeight.IsAuto) + { + nextChildModel.DockHeight = new GridLength(nextChildActualSize.Height - delta, GridUnitType.Pixel); + } else { nextChildModel.DockHeight = new GridLength(nextChildModel.DockHeight.Value - delta, GridUnitType.Pixel);