public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { string str = value as string; if (str == null) { return base.ConvertFrom(context, culture, value); } str = str.Trim(); if (str.Length == 0) return null; string[] sizes = str.Split(','); RibbonSizeCollection collection = new RibbonSizeCollection(); foreach (string size in sizes) { RibbonSize rs; switch (size.ToUpper()) { case "L": rs = RibbonSize.Large; break; case "M": rs = RibbonSize.Medium; break; case "S": rs = RibbonSize.Small; break; case "0": rs = RibbonSize.Minimized; break; default: rs = (RibbonSize)Enum.Parse(typeof(RibbonSize), size, true); break; } collection.Add(rs); } return collection; }
//Gets the maximum possible ReductionLevel that would change any of the controls. private int GetMaxLevel() { int max = 1; foreach (UIElement e in Controls) { if (e is IRibbonControl) { RibbonSizeCollection reduction = RibbonBar.GetReduction(e); int m = reduction != null ? reduction.Count : 3; max = Math.Max(max, m); } if (e is IRibbonGallery) { RibbonGalleryColumns columns = RibbonGallery.GetReductionColumns(e); int m = columns != null ? columns.Count : 3; max = Math.Max(max, m); } } return(max); }
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { string str = value as string; if (str == null) { return(base.ConvertFrom(context, culture, value)); } str = str.Trim(); if (str.Length == 0) { return(null); } string[] sizes = str.Split(','); RibbonSizeCollection collection = new RibbonSizeCollection(); foreach (string size in sizes) { RibbonSize rs; switch (size.ToUpper()) { case "L": rs = RibbonSize.Large; break; case "M": rs = RibbonSize.Medium; break; case "S": rs = RibbonSize.Small; break; case "0": rs = RibbonSize.Minimized; break; default: rs = (RibbonSize)Enum.Parse(typeof(RibbonSize), size, true); break; } collection.Add(rs); } return(collection); }
/// <summary> /// Gets the RibbonSize for a control for a specific level. /// </summary> /// <param name="control">The control for which to retreive a RibbonSize.</param> /// <param name="level">The reduction Level (0=large, 2=medium,3=small,4=minimized,...).</param> /// <param name="index">The index of the control in the group.</param> /// <returns>The RibbonSize for the control.</returns> RibbonSize GetControlSize(DependencyObject control, int level, int index) { RibbonSizeCollection reductions = RibbonBar.GetReduction(control); if (reductions != null && reductions.Count > 0) { level = Math.Max(0, Math.Min(level, reductions.Count - 1)); return(reductions[level]); } RibbonSize size; switch (level) { case 0: size = GetDefaultSizeForLevel0(index); break; case 1: size = GetDefaultSizeForLevel1(index); break; case 2: size = GetDefaultSizeForLevel2(index); break; default: size = RibbonSize.Minimized; break; } RibbonSize min = RibbonBar.GetMinSize(control); RibbonSize max = RibbonBar.GetMaxSize(control); if (size < min) { size = min; } if (size > max) { size = max; } return(size); }
public static void SetReduction(DependencyObject obj, RibbonSizeCollection value) { obj.SetValue(ReductionProperty, value); }