protected override SizeF MeasureOverride(SizeF availableSize) { if (this.ElementTree == null) { return(base.MeasureOverride(availableSize)); } RadDropDownMenu menu = this.ElementTree.Control as RadDropDownMenu; RadApplicationMenuDropDown appMenu = null; if (menu != null && menu.OwnerElement != null && menu.OwnerElement.IsInValidState(true)) { appMenu = menu.OwnerElement.ElementTree.Control as RadApplicationMenuDropDown; } if (appMenu != null) { availableSize.Width = appMenu.RightColumnWidth - 5; } foreach (RadElement element in this.Children) { RadMenuItem menuItem = element as RadMenuItem; if (menuItem != null) { menuItem.Measure(availableSize); leftColumnWidth = Math.Max(leftColumnWidth, menuItem.LeftColumnElement.DesiredSize.Width); rightColumnWidth = Math.Max(rightColumnWidth, menuItem.RightColumnElement.DesiredSize.Width); leftColumnMaxPadding = Math.Max(leftColumnMaxPadding, menuItem.Padding.Left + menuItem.BorderThickness.Left + menuItem.Margin.Left); } } leftColumnWidth = Math.Max(leftColumnWidth, LeftColumnMinWidth); SizeF preferredSize = base.MeasureOverride(availableSize); preferredSize.Width += leftColumnWidth; preferredSize.Width += this.Padding.Horizontal; preferredSize.Height += this.Padding.Vertical; if (appMenu != null) { preferredSize.Width = appMenu.RightColumnWidth - 5; } return(preferredSize); }
protected override SizeF MeasureOverride(SizeF availableSize) { if (this.ElementTree == null) { return(base.MeasureOverride(availableSize)); } RadDropDownMenu control = this.ElementTree.Control as RadDropDownMenu; RadApplicationMenuDropDown applicationMenuDropDown = (RadApplicationMenuDropDown)null; if (control != null && control.OwnerElement != null && control.OwnerElement.IsInValidState(true)) { applicationMenuDropDown = control.OwnerElement.ElementTree.Control as RadApplicationMenuDropDown; } if (applicationMenuDropDown != null) { availableSize.Width = (float)(applicationMenuDropDown.RightColumnWidth - 5); } foreach (RadElement child in this.Children) { RadMenuItem radMenuItem = child as RadMenuItem; if (radMenuItem != null) { radMenuItem.Measure(availableSize); this.leftColumnWidth = Math.Max(this.leftColumnWidth, radMenuItem.LeftColumnElement.DesiredSize.Width); this.rightColumnWidth = Math.Max(this.rightColumnWidth, radMenuItem.RightColumnElement.DesiredSize.Width); this.leftColumnMaxPadding = Math.Max(this.leftColumnMaxPadding, (float)(radMenuItem.Padding.Left + radMenuItem.BorderThickness.Left + radMenuItem.Margin.Left)); } } this.leftColumnWidth = Math.Max(this.leftColumnWidth, (float)this.LeftColumnMinWidth); SizeF sizeF = base.MeasureOverride(availableSize); sizeF.Width += (float)this.RightColumnPadding; sizeF.Width += (float)this.Padding.Horizontal; sizeF.Height += (float)this.Padding.Vertical; if (applicationMenuDropDown != null) { sizeF.Width = (float)(applicationMenuDropDown.RightColumnWidth - 5); } return(sizeF); }