File: System\Windows\Forms\VisualStyles\TextMetrics.cs
Web Access
Project: src\src\System.Windows.Forms.Primitives\src\System.Windows.Forms.Primitives.csproj (System.Windows.Forms.Primitives)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.Windows.Forms.VisualStyles;
 
public struct TextMetrics
{
    public int Height { get; set; }
 
    public int Ascent { get; set; }
 
    public int Descent { get; set; }
 
    public int InternalLeading { get; set; }
 
    public int ExternalLeading { get; set; }
 
    public int AverageCharWidth { get; set; }
 
    public int MaxCharWidth { get; set; }
 
    public int Weight { get; set; }
 
    public int Overhang { get; set; }
 
    public int DigitizedAspectX { get; set; }
 
    public int DigitizedAspectY { get; set; }
 
    public char FirstChar { get; set; }
 
    public char LastChar { get; set; }
 
    public char DefaultChar { get; set; }
 
    public char BreakChar { get; set; }
 
    public bool Italic { get; set; }
 
    public bool Underlined { get; set; }
 
    public bool StruckOut { get; set; }
 
    public TextMetricsPitchAndFamilyValues PitchAndFamily { get; set; }
 
    public TextMetricsCharacterSet CharSet { get; set; }
 
    internal static TextMetrics FromTEXTMETRICW(TEXTMETRICW metrics) => new()
    {
        Height = metrics.tmHeight,
        Ascent = metrics.tmAscent,
        Descent = metrics.tmDescent,
        InternalLeading = metrics.tmInternalLeading,
        ExternalLeading = metrics.tmExternalLeading,
        AverageCharWidth = metrics.tmAveCharWidth,
        MaxCharWidth = metrics.tmMaxCharWidth,
        Weight = metrics.tmWeight,
        Overhang = metrics.tmOverhang,
        DigitizedAspectX = metrics.tmDigitizedAspectX,
        DigitizedAspectY = metrics.tmDigitizedAspectY,
        FirstChar = metrics.tmFirstChar,
        LastChar = metrics.tmLastChar,
        DefaultChar = metrics.tmDefaultChar,
        BreakChar = metrics.tmBreakChar,
        Italic = metrics.tmItalic != 0,
        Underlined = metrics.tmUnderlined != 0,
        StruckOut = metrics.tmStruckOut != 0,
        PitchAndFamily = (TextMetricsPitchAndFamilyValues)metrics.tmPitchAndFamily,
        CharSet = (TextMetricsCharacterSet)metrics.tmCharSet
    };
}