public GetPreferredSize ( |
||
context | Layout context. | |
Résultat |
/// <summary> /// Discover the preferred size of the element. /// </summary> /// <param name="context">Layout context.</param> public override Size GetPreferredSize(ViewLayoutContext context) { // Sync to represent the current ribbon QAT buttons SyncChildren(false); Size preferredSize = Size.Empty; // Find total width and maximum height across all child elements for (int i = 0; i < Count; i++) { ViewBase child = this[i]; // Only interested in visible items that are not the extra button if (child != _extraButton) { // Cast child to correct type ViewDrawRibbonQATButton view = (ViewDrawRibbonQATButton)child; // If the quick access toolbar button wants to be visible if (view.QATButton.GetVisible() || Ribbon.InDesignHelperMode) { // Cache preferred size of the child Size childSize = child.GetPreferredSize(context); // Only need extra processing for children that have some width if (childSize.Width > 0) { // Always add on to the width preferredSize.Width += childSize.Width; // Find maximum height encountered preferredSize.Height = Math.Max(preferredSize.Height, childSize.Height); } } } } if (_extraButton != null) { // Cache preferred size of the child Size childSize = _extraButton.GetPreferredSize(context); // Only need extra processing for children that have some width if (childSize.Width > 0) { // Always add on to the width preferredSize.Width += childSize.Width; // Find maximum height encountered preferredSize.Height = Math.Max(preferredSize.Height, childSize.Height); } } return(preferredSize); }