} // LineHeight /// <summary> /// Find maximum width from items. /// </summary> private int LineWidth() { int maximumWidth = 0; int maximumRightSideWidth = 0; SkinFont font = SkinInformation.Layers["Control"].Text.Font; if (Items.Count > 0) { foreach (MenuItem item in Items) { // Text maximum. int itemWidth = (int)font.Font.MeasureString(item.Text).X + 16; if (itemWidth > maximumWidth) maximumWidth = itemWidth; // Right side text maximum. int itemRightSideWidth; if (string.IsNullOrEmpty(item.RightSideText)) itemRightSideWidth = 0; else itemRightSideWidth = (int)font.Font.MeasureString(item.RightSideText).X + 16; if (itemRightSideWidth > maximumRightSideWidth) maximumRightSideWidth = itemRightSideWidth; } } maximumWidth += maximumRightSideWidth + 4 + LineHeight(); return maximumWidth; } // LineWidth
public SkinFont(SkinFont source) : base(source) { if (source != null) { Font = source.Font; Filename = source.Filename; } } // SkinFont
} // SkinText public SkinText(SkinText source) : base(source) { if (source != null) { Font = new SkinFont(source.Font); OffsetX = source.OffsetX; OffsetY = source.OffsetY; Alignment = source.Alignment; Colors = source.Colors; } } // SkinText
} // LoadLayerAttribute #endregion #endregion #region Load Fonts /// <summary> /// Load fonts information. /// </summary> private static void LoadFontsDescription() { if (skinDescription.Resource.Element("Skin").Element("Fonts") == null) { return; } foreach (var font in skinDescription.Resource.Element("Skin").Element("Fonts").Elements()) { SkinFont skinFont = new SkinFont { Name = ReadAttribute(font, "Name", null, true), Filename = ReadAttribute(font, "Asset", null, true) }; Fonts.Add(skinFont); } } // LoadFonts