This documentation is archived and is not being maintained.

GlyphRun Class

Represents a sequence of glyphs from a single face of a single font at a single size, and with a single rendering style.


Namespace:  System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)

public class GlyphRun : ISupportInitialize

The GlyphRun type exposes the following members.

Public methodGlyphRun()Initializes a new instance of the GlyphRun class.
Public methodGlyphRun(GlyphTypeface, Int32, Boolean, Double, IList<UInt16>, Point, IList<Double>, IList<Point>, IList<Char>, String, IList<UInt16>, IList<Boolean>, XmlLanguage)Initializes a new instance of the GlyphRun class by specifying properties of the class.

Public propertyAdvanceWidthsGets or sets the list of Double values that represent the advance widths corresponding to the glyph indices.
Public propertyBaselineOriginGets or sets the baseline origin of the GlyphRun.
Public propertyBidiLevelGets or sets the bidirectional nesting level of the GlyphRun.
Public propertyCaretStopsGets or sets the list of Boolean values that determine whether there are caret stops for every UTF16 code point in the Unicode representing the GlyphRun.
Public propertyCharactersGets or sets the list of UTF16 code points that represent the Unicode content of the GlyphRun.
Public propertyClusterMapGets or sets the list of UInt16 values that maps characters in the GlyphRun to glyph indices.
Public propertyDeviceFontNameGets or sets the specific device font for which the GlyphRun has been optimized.
Public propertyFontRenderingEmSizeGets or sets the em size used for rendering the GlyphRun.
Public propertyGlyphIndicesGets or sets an array of UInt16 values that represent the glyph indices in the rendering physical font.
Public propertyGlyphOffsetsGets or sets an array of Point values representing the offsets of the glyphs in the GlyphRun.
Public propertyGlyphTypefaceGets or sets the GlyphTypeface for the GlyphRun.
Public propertyIsHitTestableGets a value indicating whether there are any valid caret character hits within the GlyphRun.
Public propertyIsSidewaysGets or sets a value indicating whether to rotate glyphs.
Public propertyLanguageGets or sets the XmlLanguage for the GlyphRun.

Public methodBuildGeometryRetrieves the Geometry for the GlyphRun.
Public methodComputeAlignmentBoxRetrieves the alignment box for the GlyphRun.
Public methodComputeInkBoundingBoxRetrieves the ink bounding box for the GlyphRun.
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetCaretCharacterHitFromDistanceRetrieves the CharacterHit value that represents the character hit of the caret of the GlyphRun.
Public methodGetDistanceFromCaretCharacterHitRetrieves the offset from the leading edge of the GlyphRun to the leading or trailing edge of a caret stop containing the specified character hit.
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetNextCaretCharacterHitRetrieves the next valid caret character hit in the logical direction in the GlyphRun.
Public methodGetPreviousCaretCharacterHitRetrieves the previous valid caret character hit in the logical direction in the GlyphRun.
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

The GlyphRun object includes font details such as glyph indices and individual glyph positions. In addition, The GlyphRun object contains the original Unicode code points the run was generated from, character to glyph buffer offset mapping information, and per-character and per-glyph flags.

The Glyphs element represents the output of a GlyphRun in XAML. The following markup syntax is used to describe the Glyphs element.

<!-- The example shows how to use a Glyphs object. -->

   <StackPanel Background="PowderBlue">

         FontUri             = "C:\WINDOWS\Fonts\TIMES.TTF"
         FontRenderingEmSize = "100"
         StyleSimulations    = "BoldSimulation"
         UnicodeString       = "Hello World!"
         Fill                = "Black"
         OriginX             = "100"
         OriginY             = "200"


Each glyph defines metrics that specify how it aligns with other Glyphs. The following graphic defines the various typographic qualities of two different glyph characters.

Various typographic qualities of two different glyph characters

Diagraph of glyph measurements

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.