How to reproduce: try resizing a too window using its splitter Workaround: create a custom RadDock using special layout strategy public class MyRadDock : RadDock { public override string ThemeClassName { get { return typeof(RadDock).FullName; } } protected override SplitContainerLayoutStrategy CreateLayoutStrategy() { MySplitContainerLayoutStrategy strategy = null; if (this.LayoutStrategyType != null) { try { strategy = Activator.CreateInstance(this.LayoutStrategyType) as MySplitContainerLayoutStrategy; } catch { strategy = null; } } if (strategy == null) { strategy = new MySplitContainerLayoutStrategy(); } strategy.RootContainerType = typeof(RadDock); return strategy; } } public class MySplitContainerLayoutStrategy : SplitContainerLayoutStrategy { protected override void Measure() { SplitContainerLayoutInfo layoutInfo = (SplitContainerLayoutInfo)typeof(SplitContainerLayoutStrategy).GetField("layoutInfo", BindingFlags.Instance | BindingFlags.NonPublic). GetValue(this); SplitPanel fillPanel = (SplitPanel)typeof(SplitContainerLayoutInfo).GetField("fillPanel", BindingFlags.Instance | BindingFlags.NonPublic). GetValue(layoutInfo); if (fillPanel == null) { base.Measure(); } this.MeasureWithFillPanel(); typeof(SplitContainerLayoutStrategy).GetMethod("ClampMeasuredLength", BindingFlags.Instance | BindingFlags.NonPublic). Invoke(this, new object[] { }); } private void MeasureWithFillPanel() { FieldInfo layoutInfoFi = typeof(SplitContainerLayoutStrategy).GetField("layoutInfo", BindingFlags.Instance | BindingFlags.NonPublic); SplitContainerLayoutInfo layoutInfo = (SplitContainerLayoutInfo)layoutInfoFi.GetValue(this); int availableLength = (int)typeof(SplitContainerLayoutInfo).GetField("availableLength", BindingFlags.Instance | BindingFlags.NonPublic). GetValue(layoutInfo); int remaining = availableLength; SplitPanel panel; //calculate the desired size of all non-fill panels int desiredNonFillLength = 0; List<SplitPanel> layoutTargets = (List<SplitPanel>)typeof(SplitContainerLayoutInfo).GetField("layoutTargets", BindingFlags.Instance | BindingFlags.NonPublic). GetValue(layoutInfo); SplitPanel fillPanel = (SplitPanel)typeof(SplitContainerLayoutInfo).GetField("fillPanel", BindingFlags.Instance | BindingFlags.NonPublic). GetValue(layoutInfo); int count = layoutTargets.Count; for (int i = 0; i < count; i++) { panel = layoutTargets[i]; if (panel == fillPanel) { continue; } desiredNonFillLength += this.GetLength(panel.SizeInfo.AbsoluteSize); } SplitPanelSizeInfo fillInfo = fillPanel.SizeInfo; int totalSplitterLength = (int)typeof(SplitContainerLayoutInfo).GetField("totalSplitterLength", BindingFlags.Instance | BindingFlags.NonPublic). GetValue(layoutInfo); int layoutableLength = availableLength - totalSplitterLength; int correction = 0; int totalMinLength = (int)typeof(SplitContainerLayoutInfo).GetField("totalMinLength", BindingFlags.Instance | BindingFlags.NonPublic). GetValue(layoutInfo); int desiredFillLength = totalMinLength; if (desiredNonFillLength + desiredFillLength > layoutableLength) { correction = (desiredNonFillLength + desiredFillLength) - layoutableLength; } int remainingCorrection = correction; for (int i = 0; i < layoutTargets.Count; i++) { panel = layoutTargets[i]; if (panel == fillPanel) { continue; } int length = this.GetLength(TelerikDpiHelper.ScaleSize(panel.SizeInfo.AbsoluteSize, new SizeF(1f / panel.SplitPanelElement.DpiScaleFactor.Width, 1f / panel.SplitPanelElement.DpiScaleFactor.Height))); if (remainingCorrection > 0 && panel.SizeInfo.SizeMode != SplitPanelSizeMode.Absolute) { float factor = (float)length / desiredNonFillLength; int panelCorrection = Math.Max(1, (int)(factor * correction)); remainingCorrection -= panelCorrection; length -= panelCorrection; } panel.SizeInfo.MeasuredLength = length; int splitterLength = (int)typeof(SplitContainerLayoutInfo).GetField("splitterLength", BindingFlags.Instance | BindingFlags.NonPublic). GetValue(layoutInfo); remaining -= (panel.SizeInfo.MeasuredLength + splitterLength); } fillPanel.SizeInfo.MeasuredLength = remaining; } }