FormattedText.SetFontSize Method (Double, Int32, Int32)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Sets the font size for a specified subset of characters in the FormattedText object.

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

Public Sub SetFontSize (
	emSize As Double,
	startIndex As Integer,
	count As Integer


Type: System.Double

The font 'em' measure size, provided in device-independent units (1/96th inch per unit).

Type: System.Int32

The start index of the initial character to apply the font size to.

Type: System.Int32

The number of characters to apply the font size to.

To set the font size value for the entire text string, use the SetFontSize method.

The following example creates a FormattedText object and then applies several formatting styles to the text, including SetFontSize.

Protected Overrides Sub OnRender(ByVal drawingContext As DrawingContext)
	Dim testString As String = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"

	' Create the initial formatted text string.
	Dim formattedText As New FormattedText(testString, CultureInfo.GetCultureInfo("en-us"), FlowDirection.LeftToRight, New Typeface("Verdana"), 32, Brushes.Black)

	' Set a maximum width and height. If the text overflows these values, an ellipsis "..." appears.
	formattedText.MaxTextWidth = 300
	formattedText.MaxTextHeight = 240

	' Use a larger font size beginning at the first (zero-based) character and continuing for 5 characters.
	' The font size is calculated in terms of points -- not as device-independent pixels.
	formattedText.SetFontSize(36 * (96.0 / 72.0), 0, 5)

	' Use a Bold font weight beginning at the 6th character and continuing for 11 characters.
	formattedText.SetFontWeight(FontWeights.Bold, 6, 11)

	' Use a linear gradient brush beginning at the 6th character and continuing for 11 characters.
	formattedText.SetForegroundBrush(New LinearGradientBrush(Colors.Orange, Colors.Teal, 90.0), 6, 11)

	' Use an Italic font style beginning at the 28th character and continuing for 28 characters.
	formattedText.SetFontStyle(FontStyles.Italic, 28, 28)

	' Draw the formatted text string to the DrawingContext of the control.
	drawingContext.DrawText(formattedText, New Point(10, 0))
End Sub

.NET Framework
Available since 3.0
Return to top