Freigeben über


TextRenderer.MeasureText Methode

Definition

Misst den angegebenen Text, wenn dieser in der angegebenen Schriftart gezeichnet wird.

Überlädt

MeasureText(String, Font, Size, TextFormatFlags)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart und entsprechend den angegebenen Formatierungsanweisungen gezeichnet wird und dabei mithilfe der angegebenen Größe das anfängliche umgebende Rechteck für den Text erstellt wird.

MeasureText(ReadOnlySpan<Char>, Font, Size, TextFormatFlags)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart und entsprechend den angegebenen Formatierungsanweisungen gezeichnet wird und dabei mithilfe der angegebenen Größe das anfängliche umgebende Rechteck für den Text erstellt wird.

MeasureText(IDeviceContext, String, Font, Size)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart im angegebenen Gerätekontext gezeichnet wird und dabei mithilfe der angegebenen Größe ein anfängliches umgebendes Rechteck für den Text erstellt wird.

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart im angegebenen Gerätekontext gezeichnet wird und dabei mithilfe der angegebenen Größe ein anfängliches umgebendes Rechteck für den Text erstellt wird.

MeasureText(String, Font, Size)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart gezeichnet wird und dabei mithilfe der angegebenen Größe ein anfängliches umgebendes Rechteck erstellt wird.

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser in der angegebenen Schriftart im angegebenen Gerätekontext gezeichnet wird.

MeasureText(IDeviceContext, String, Font)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser in der angegebenen Schriftart im angegebenen Gerätekontext gezeichnet wird.

MeasureText(String, Font)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser in der angegebenen Schriftart gezeichnet wird.

MeasureText(ReadOnlySpan<Char>, Font)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser in der angegebenen Schriftart gezeichnet wird.

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size, TextFormatFlags)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit dem angegebenen Gerätekontext, mit der angegebenen Schriftart und entsprechend den angegebenen Formatierungsanweisungen gezeichnet wird und dabei mithilfe der angegebenen Größe das anfängliche umgebende Rechteck für den Text erstellt wird.

MeasureText(ReadOnlySpan<Char>, Font, Size)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart gezeichnet wird und dabei mithilfe der angegebenen Größe ein anfängliches umgebendes Rechteck erstellt wird.

MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit dem angegebenen Gerätekontext, mit der angegebenen Schriftart und entsprechend den angegebenen Formatierungsanweisungen gezeichnet wird und dabei mithilfe der angegebenen Größe das anfängliche umgebende Rechteck für den Text erstellt wird.

MeasureText(String, Font, Size, TextFormatFlags)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart und entsprechend den angegebenen Formatierungsanweisungen gezeichnet wird und dabei mithilfe der angegebenen Größe das anfängliche umgebende Rechteck für den Text erstellt wird.

public:
 static System::Drawing::Size MeasureText(System::String ^ text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize, System::Windows::Forms::TextFormatFlags flags);
public static System.Drawing.Size MeasureText (string text, System.Drawing.Font font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
public static System.Drawing.Size MeasureText (string? text, System.Drawing.Font? font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
static member MeasureText : string * System.Drawing.Font * System.Drawing.Size * System.Windows.Forms.TextFormatFlags -> System.Drawing.Size
Public Shared Function MeasureText (text As String, font As Font, proposedSize As Size, flags As TextFormatFlags) As Size

Parameter

text
String

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

proposedSize
Size

Die Size des anfänglichen umgebenden Rechtecks.

flags
TextFormatFlags

Die Formatierungsanweisungen, die für den bemessenen Text gelten sollen.

Gibt zurück

Die Size des mit dem angegebenen text und Format gezeichneten font in Pixel.

Beispiele

Im folgenden Codebeispiel wird die Verwendung einer der MeasureText Methoden veranschaulicht. Fügen Sie zum Ausführen dieses Beispiels den Code in eine Windows Form ein, und rufen Sie DrawALineOfText aus dem Ereignishandler des Formulars Paint auf, indem Sie als PaintEventArgsübergebene.

private static void DrawALineOfText(PaintEventArgs e)
{
    // Declare strings to render on the form.
    string[] stringsToPaint = { "Tail", "Spin", " Toys" };

    // Declare fonts for rendering the strings.
    Font[] fonts = { new Font("Arial", 14, FontStyle.Regular), 
        new Font("Arial", 14, FontStyle.Italic), 
        new Font("Arial", 14, FontStyle.Regular) };

    Point startPoint = new Point(10, 10);

    // Set TextFormatFlags to no padding so strings are drawn together.
    TextFormatFlags flags = TextFormatFlags.NoPadding;

    // Declare a proposed size with dimensions set to the maximum integer value.
    Size proposedSize = new Size(int.MaxValue, int.MaxValue);

    // Measure each string with its font and NoPadding value and 
    // draw it to the form.
    for (int i = 0; i < stringsToPaint.Length; i++)
    {
        Size size = TextRenderer.MeasureText(e.Graphics, stringsToPaint[i], 
            fonts[i], proposedSize, flags);
        Rectangle rect = new Rectangle(startPoint, size);
        TextRenderer.DrawText(e.Graphics, stringsToPaint[i], fonts[i],
            startPoint, Color.Black, flags);
        startPoint.X += size.Width;
    }
}
Private Sub DrawALineOfText(ByVal e As PaintEventArgs)
    ' Declare strings to render on the form.
    Dim stringsToPaint() As String = {"Tail", "Spin", " Toys"}

    ' Declare fonts for rendering the strings.
    Dim fonts() As Font = {New Font("Arial", 14, FontStyle.Regular), _
        New Font("Arial", 14, FontStyle.Italic), _
        New Font("Arial", 14, FontStyle.Regular)}

    Dim startPoint As New Point(10, 10)

    ' Set TextFormatFlags to no padding so strings are drawn together.
    Dim flags As TextFormatFlags = TextFormatFlags.NoPadding

    ' Declare a proposed size with dimensions set to the maximum integer value.
    Dim proposedSize As Size = New Size(Integer.MaxValue, Integer.MaxValue)

    ' Measure each string with its font and NoPadding value and draw it to the form.
    For i As Integer = 0 To stringsToPaint.Length - 1
        Dim size As Size = TextRenderer.MeasureText(e.Graphics, _
            stringsToPaint(i), fonts(i), proposedSize, flags)
        Dim rect As Rectangle = New Rectangle(startPoint, size)
        TextRenderer.DrawText(e.Graphics, stringsToPaint(i), fonts(i), _
            startPoint, Color.Black, flags)
        startPoint.X += size.Width
    Next
End Sub

Hinweise

MeasureText verwendet die proposedSize Parameter und flags , um die Beziehung zwischen Höhe und Breite bei der Bestimmung der Textgröße anzugeben. Wenn beim Messen von Text in einer einzelnen Zeile der proposedSize Parameter eine mit einer Size Höhendimension größer als Int32.MaxValuedarstellt, wird die zurückgegebene so angepasst, dass die tatsächliche Höhe des Texts widergespiegelt Size wird.

Wie der Text gezeichnet wird, können Sie mithilfe einer der Überladungen von DrawText beeinflussen, die einen TextFormatFlags-Parameter akzeptiert. Standardmäßig fügt TextRenderer dem umgebenden Rechteck des gezeichneten Texts einen Abstand hinzu, damit überhängende Symbole aufgenommen werden können. Wenn Sie eine Textzeile ohne diesen zusätzlichen Leerraum zeichnen müssen, empfiehlt es sich, die Versionen von DrawText und MeasureText zu verwenden, die einen Size-Parameter und einen TextFormatFlags-Parameter akzeptieren. Ein Beispiel finden Sie unter MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Hinweis

Diese Überladung von MeasureText(String, Font, Size, TextFormatFlags) ignoriert den TextFormatFlags Wert oder NoPaddingLeftAndRightPadding. Wenn Sie einen anderen Auffüllungswert als den Standard angeben, sollten Sie die Überladung von MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) verwenden, die ein IDeviceContext -Objekt annimmt.

Gilt für:

MeasureText(ReadOnlySpan<Char>, Font, Size, TextFormatFlags)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart und entsprechend den angegebenen Formatierungsanweisungen gezeichnet wird und dabei mithilfe der angegebenen Größe das anfängliche umgebende Rechteck für den Text erstellt wird.

public:
 static System::Drawing::Size MeasureText(ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize, System::Windows::Forms::TextFormatFlags flags);
public static System.Drawing.Size MeasureText (ReadOnlySpan<char> text, System.Drawing.Font? font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
static member MeasureText : ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.Size * System.Windows.Forms.TextFormatFlags -> System.Drawing.Size
Public Shared Function MeasureText (text As ReadOnlySpan(Of Char), font As Font, proposedSize As Size, flags As TextFormatFlags) As Size

Parameter

text
ReadOnlySpan<Char>

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

proposedSize
Size

Die Size des anfänglichen umgebenden Rechtecks.

flags
TextFormatFlags

Die Formatierungsanweisungen, die für den bemessenen Text gelten sollen.

Gibt zurück

Die Size des mit dem angegebenen text und Format gezeichneten font in Pixel.

Ausnahmen

Gilt für:

MeasureText(IDeviceContext, String, Font, Size)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart im angegebenen Gerätekontext gezeichnet wird und dabei mithilfe der angegebenen Größe ein anfängliches umgebendes Rechteck für den Text erstellt wird.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, System::String ^ text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string text, System.Drawing.Font font, System.Drawing.Size proposedSize);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string? text, System.Drawing.Font? font, System.Drawing.Size proposedSize);
static member MeasureText : System.Drawing.IDeviceContext * string * System.Drawing.Font * System.Drawing.Size -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As String, font As Font, proposedSize As Size) As Size

Parameter

dc
IDeviceContext

Der Gerätekontext, in dem der Text bemessen werden soll.

text
String

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

proposedSize
Size

Die Size des anfänglichen umgebenden Rechtecks.

Gibt zurück

Die Size des mit dem angegebenen text gezeichneten font in Pixel.

Ausnahmen

dc ist null.

Beispiele

Im folgenden Codebeispiel wird die Verwendung einer der MeasureText Methoden veranschaulicht. Fügen Sie zum Ausführen dieses Beispiels den Code in eine Windows Form ein, und rufen Sie DrawALineOfText aus dem Ereignishandler des Formulars Paint auf, indem Sie als PaintEventArgsübergebene.

private static void DrawALineOfText(PaintEventArgs e)
{
    // Declare strings to render on the form.
    string[] stringsToPaint = { "Tail", "Spin", " Toys" };

    // Declare fonts for rendering the strings.
    Font[] fonts = { new Font("Arial", 14, FontStyle.Regular), 
        new Font("Arial", 14, FontStyle.Italic), 
        new Font("Arial", 14, FontStyle.Regular) };

    Point startPoint = new Point(10, 10);

    // Set TextFormatFlags to no padding so strings are drawn together.
    TextFormatFlags flags = TextFormatFlags.NoPadding;

    // Declare a proposed size with dimensions set to the maximum integer value.
    Size proposedSize = new Size(int.MaxValue, int.MaxValue);

    // Measure each string with its font and NoPadding value and 
    // draw it to the form.
    for (int i = 0; i < stringsToPaint.Length; i++)
    {
        Size size = TextRenderer.MeasureText(e.Graphics, stringsToPaint[i], 
            fonts[i], proposedSize, flags);
        Rectangle rect = new Rectangle(startPoint, size);
        TextRenderer.DrawText(e.Graphics, stringsToPaint[i], fonts[i],
            startPoint, Color.Black, flags);
        startPoint.X += size.Width;
    }
}
Private Sub DrawALineOfText(ByVal e As PaintEventArgs)
    ' Declare strings to render on the form.
    Dim stringsToPaint() As String = {"Tail", "Spin", " Toys"}

    ' Declare fonts for rendering the strings.
    Dim fonts() As Font = {New Font("Arial", 14, FontStyle.Regular), _
        New Font("Arial", 14, FontStyle.Italic), _
        New Font("Arial", 14, FontStyle.Regular)}

    Dim startPoint As New Point(10, 10)

    ' Set TextFormatFlags to no padding so strings are drawn together.
    Dim flags As TextFormatFlags = TextFormatFlags.NoPadding

    ' Declare a proposed size with dimensions set to the maximum integer value.
    Dim proposedSize As Size = New Size(Integer.MaxValue, Integer.MaxValue)

    ' Measure each string with its font and NoPadding value and draw it to the form.
    For i As Integer = 0 To stringsToPaint.Length - 1
        Dim size As Size = TextRenderer.MeasureText(e.Graphics, _
            stringsToPaint(i), fonts(i), proposedSize, flags)
        Dim rect As Rectangle = New Rectangle(startPoint, size)
        TextRenderer.DrawText(e.Graphics, stringsToPaint(i), fonts(i), _
            startPoint, Color.Black, flags)
        startPoint.X += size.Width
    Next
End Sub

Hinweise

Die MeasureText -Methode verwendet den proposedSize -Parameter, um die Beziehung zwischen Höhe und Breite anzugeben, wenn die Textgröße bestimmt wird. Wenn beim Messen von Text in einer einzelnen Zeile der proposedSize Parameter eine mit einer Size Höhendimension größer als Int32.MaxValuedarstellt, wird die zurückgegebene so angepasst, dass die tatsächliche Höhe des Texts widergespiegelt Size wird.

Gilt für:

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart im angegebenen Gerätekontext gezeichnet wird und dabei mithilfe der angegebenen Größe ein anfängliches umgebendes Rechteck für den Text erstellt wird.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, ReadOnlySpan<char> text, System.Drawing.Font? font, System.Drawing.Size proposedSize);
static member MeasureText : System.Drawing.IDeviceContext * ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.Size -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As ReadOnlySpan(Of Char), font As Font, proposedSize As Size) As Size

Parameter

dc
IDeviceContext

Der Gerätekontext, in dem der Text bemessen werden soll.

text
ReadOnlySpan<Char>

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

proposedSize
Size

Die Size des anfänglichen umgebenden Rechtecks.

Gibt zurück

Die Size des mit dem angegebenen text gezeichneten font in Pixel.

Ausnahmen

dc ist null.

Gilt für:

MeasureText(String, Font, Size)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart gezeichnet wird und dabei mithilfe der angegebenen Größe ein anfängliches umgebendes Rechteck erstellt wird.

public:
 static System::Drawing::Size MeasureText(System::String ^ text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize);
public static System.Drawing.Size MeasureText (string text, System.Drawing.Font font, System.Drawing.Size proposedSize);
public static System.Drawing.Size MeasureText (string? text, System.Drawing.Font? font, System.Drawing.Size proposedSize);
static member MeasureText : string * System.Drawing.Font * System.Drawing.Size -> System.Drawing.Size
Public Shared Function MeasureText (text As String, font As Font, proposedSize As Size) As Size

Parameter

text
String

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

proposedSize
Size

Die Size des anfänglichen umgebenden Rechtecks.

Gibt zurück

Die Size des mit dem angegebenen text gezeichneten font in Pixel.

Beispiele

Im folgenden Codebeispiel wird die Verwendung einer der MeasureText Methoden veranschaulicht. Fügen Sie zum Ausführen dieses Beispiels den Code in eine Windows Form ein, und rufen Sie DrawALineOfText aus dem Ereignishandler des Formulars Paint auf, indem Sie als PaintEventArgsübergebene.

private static void DrawALineOfText(PaintEventArgs e)
{
    // Declare strings to render on the form.
    string[] stringsToPaint = { "Tail", "Spin", " Toys" };

    // Declare fonts for rendering the strings.
    Font[] fonts = { new Font("Arial", 14, FontStyle.Regular), 
        new Font("Arial", 14, FontStyle.Italic), 
        new Font("Arial", 14, FontStyle.Regular) };

    Point startPoint = new Point(10, 10);

    // Set TextFormatFlags to no padding so strings are drawn together.
    TextFormatFlags flags = TextFormatFlags.NoPadding;

    // Declare a proposed size with dimensions set to the maximum integer value.
    Size proposedSize = new Size(int.MaxValue, int.MaxValue);

    // Measure each string with its font and NoPadding value and 
    // draw it to the form.
    for (int i = 0; i < stringsToPaint.Length; i++)
    {
        Size size = TextRenderer.MeasureText(e.Graphics, stringsToPaint[i], 
            fonts[i], proposedSize, flags);
        Rectangle rect = new Rectangle(startPoint, size);
        TextRenderer.DrawText(e.Graphics, stringsToPaint[i], fonts[i],
            startPoint, Color.Black, flags);
        startPoint.X += size.Width;
    }
}
Private Sub DrawALineOfText(ByVal e As PaintEventArgs)
    ' Declare strings to render on the form.
    Dim stringsToPaint() As String = {"Tail", "Spin", " Toys"}

    ' Declare fonts for rendering the strings.
    Dim fonts() As Font = {New Font("Arial", 14, FontStyle.Regular), _
        New Font("Arial", 14, FontStyle.Italic), _
        New Font("Arial", 14, FontStyle.Regular)}

    Dim startPoint As New Point(10, 10)

    ' Set TextFormatFlags to no padding so strings are drawn together.
    Dim flags As TextFormatFlags = TextFormatFlags.NoPadding

    ' Declare a proposed size with dimensions set to the maximum integer value.
    Dim proposedSize As Size = New Size(Integer.MaxValue, Integer.MaxValue)

    ' Measure each string with its font and NoPadding value and draw it to the form.
    For i As Integer = 0 To stringsToPaint.Length - 1
        Dim size As Size = TextRenderer.MeasureText(e.Graphics, _
            stringsToPaint(i), fonts(i), proposedSize, flags)
        Dim rect As Rectangle = New Rectangle(startPoint, size)
        TextRenderer.DrawText(e.Graphics, stringsToPaint(i), fonts(i), _
            startPoint, Color.Black, flags)
        startPoint.X += size.Width
    Next
End Sub

Hinweise

Die MeasureText -Methode verwendet den proposedSize -Parameter, um die Beziehung zwischen Höhe und Breite anzugeben, wenn die Textgröße bestimmt wird. Wenn beim Messen von Text in einer einzelnen Zeile der proposedSize Parameter eine mit einer Size Höhendimension größer als Int32.MaxValuedarstellt, wird die zurückgegebene so angepasst, dass die tatsächliche Höhe des Texts widergespiegelt Size wird.

Gilt für:

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser in der angegebenen Schriftart im angegebenen Gerätekontext gezeichnet wird.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, ReadOnlySpan<char> text, System::Drawing::Font ^ font);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, ReadOnlySpan<char> text, System.Drawing.Font? font);
static member MeasureText : System.Drawing.IDeviceContext * ReadOnlySpan<char> * System.Drawing.Font -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As ReadOnlySpan(Of Char), font As Font) As Size

Parameter

dc
IDeviceContext

Der Gerätekontext, in dem der Text bemessen werden soll.

text
ReadOnlySpan<Char>

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

Gibt zurück

Die Size (in Pixel) des text, der mit der angegebenen font im angegebenen Gerätekontext gezeichnet wird.

Ausnahmen

dc ist null.

Gilt für:

MeasureText(IDeviceContext, String, Font)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser in der angegebenen Schriftart im angegebenen Gerätekontext gezeichnet wird.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, System::String ^ text, System::Drawing::Font ^ font);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string text, System.Drawing.Font font);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string? text, System.Drawing.Font? font);
static member MeasureText : System.Drawing.IDeviceContext * string * System.Drawing.Font -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As String, font As Font) As Size

Parameter

dc
IDeviceContext

Der Gerätekontext, in dem der Text bemessen werden soll.

text
String

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

Gibt zurück

Die Size (in Pixel) des text, der in einer einzelnen Zeile mit dem angegebenen font im angegebenen Gerätekontext gezeichnet wird.

Beispiele

Im folgenden Codebeispiel wird die Verwendung einer der MeasureText Methoden veranschaulicht. Fügen Sie zum Ausführen dieses Beispiels den Code in eine Windows Form ein, und rufen Sie DrawALineOfText aus dem Ereignishandler des Formulars Paint auf, indem Sie als PaintEventArgsübergebene.

private static void DrawALineOfText(PaintEventArgs e)
{
    // Declare strings to render on the form.
    string[] stringsToPaint = { "Tail", "Spin", " Toys" };

    // Declare fonts for rendering the strings.
    Font[] fonts = { new Font("Arial", 14, FontStyle.Regular), 
        new Font("Arial", 14, FontStyle.Italic), 
        new Font("Arial", 14, FontStyle.Regular) };

    Point startPoint = new Point(10, 10);

    // Set TextFormatFlags to no padding so strings are drawn together.
    TextFormatFlags flags = TextFormatFlags.NoPadding;

    // Declare a proposed size with dimensions set to the maximum integer value.
    Size proposedSize = new Size(int.MaxValue, int.MaxValue);

    // Measure each string with its font and NoPadding value and 
    // draw it to the form.
    for (int i = 0; i < stringsToPaint.Length; i++)
    {
        Size size = TextRenderer.MeasureText(e.Graphics, stringsToPaint[i], 
            fonts[i], proposedSize, flags);
        Rectangle rect = new Rectangle(startPoint, size);
        TextRenderer.DrawText(e.Graphics, stringsToPaint[i], fonts[i],
            startPoint, Color.Black, flags);
        startPoint.X += size.Width;
    }
}
Private Sub DrawALineOfText(ByVal e As PaintEventArgs)
    ' Declare strings to render on the form.
    Dim stringsToPaint() As String = {"Tail", "Spin", " Toys"}

    ' Declare fonts for rendering the strings.
    Dim fonts() As Font = {New Font("Arial", 14, FontStyle.Regular), _
        New Font("Arial", 14, FontStyle.Italic), _
        New Font("Arial", 14, FontStyle.Regular)}

    Dim startPoint As New Point(10, 10)

    ' Set TextFormatFlags to no padding so strings are drawn together.
    Dim flags As TextFormatFlags = TextFormatFlags.NoPadding

    ' Declare a proposed size with dimensions set to the maximum integer value.
    Dim proposedSize As Size = New Size(Integer.MaxValue, Integer.MaxValue)

    ' Measure each string with its font and NoPadding value and draw it to the form.
    For i As Integer = 0 To stringsToPaint.Length - 1
        Dim size As Size = TextRenderer.MeasureText(e.Graphics, _
            stringsToPaint(i), fonts(i), proposedSize, flags)
        Dim rect As Rectangle = New Rectangle(startPoint, size)
        TextRenderer.DrawText(e.Graphics, stringsToPaint(i), fonts(i), _
            startPoint, Color.Black, flags)
        startPoint.X += size.Width
    Next
End Sub

Hinweise

Die MeasureText -Methode erfordert, dass der Text auf einer einzelnen Zeile gezeichnet wird.

Gilt für:

MeasureText(String, Font)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser in der angegebenen Schriftart gezeichnet wird.

public:
 static System::Drawing::Size MeasureText(System::String ^ text, System::Drawing::Font ^ font);
public static System.Drawing.Size MeasureText (string text, System.Drawing.Font font);
public static System.Drawing.Size MeasureText (string? text, System.Drawing.Font? font);
static member MeasureText : string * System.Drawing.Font -> System.Drawing.Size
Public Shared Function MeasureText (text As String, font As Font) As Size

Parameter

text
String

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

Gibt zurück

Die Size (in Pixel) des text, der in einer einzelnen Zeile mit dem angegebenen font gezeichnet wird. Wie der Text gezeichnet wird, können Sie mithilfe einer der Überladungen von DrawText(IDeviceContext, String, Font, Rectangle, Color, TextFormatFlags) beeinflussen, die einen TextFormatFlags-Parameter akzeptiert. Standardmäßig fügt TextRenderer dem umgebenden Rechteck des gezeichneten Texts einen Abstand hinzu, damit überhängende Symbole aufgenommen werden können. Wenn Sie eine Textzeile ohne diesen zusätzlichen Leerraum zeichnen müssen, empfiehlt es sich, die Versionen von DrawText(IDeviceContext, String, Font, Point, Color) und MeasureText(IDeviceContext, String, Font) zu verwenden, die einen Size-Parameter und einen TextFormatFlags-Parameter akzeptieren. Ein Beispiel finden Sie unter MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Beispiele

Das folgende Codebeispiel zeigt, wie Sie die MeasureText-Methode verwenden. Fügen Sie zum Ausführen dieses Beispiels den Code in eine Windows Form ein, und rufen Sie MeasureText1 aus dem Ereignishandler des Formulars Paint auf, indem Sie als PaintEventArgsübergebene.

private void MeasureText1(PaintEventArgs e)
{
    String text1 = "Measure this text";
    Font arialBold = new Font("Arial", 12.0F);
    Size textSize = TextRenderer.MeasureText(text1, arialBold);
    TextRenderer.DrawText(e.Graphics, text1, arialBold, 
        new Rectangle(new Point(10, 10), textSize), Color.Red);  
}
Private Sub MeasureText1(ByVal e As PaintEventArgs)
    Dim text1 As String = "Measure this text"
    Dim arialBold As New Font("Arial", 12.0F)
    Dim textSize As Size = TextRenderer.MeasureText(text1, arialBold)
    TextRenderer.DrawText(e.Graphics, text1, arialBold, _
        New Rectangle(New Point(10, 10), textSize), Color.Red)

End Sub

Hinweise

Die MeasureText -Methode erfordert, dass der Text auf einer einzelnen Zeile gezeichnet wird.

Gilt für:

MeasureText(ReadOnlySpan<Char>, Font)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser in der angegebenen Schriftart gezeichnet wird.

public:
 static System::Drawing::Size MeasureText(ReadOnlySpan<char> text, System::Drawing::Font ^ font);
public static System.Drawing.Size MeasureText (ReadOnlySpan<char> text, System.Drawing.Font? font);
static member MeasureText : ReadOnlySpan<char> * System.Drawing.Font -> System.Drawing.Size
Public Shared Function MeasureText (text As ReadOnlySpan(Of Char), font As Font) As Size

Parameter

text
ReadOnlySpan<Char>

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

Gibt zurück

Die Size (in Pixeln) des Texts, der in einer einzelnen Zeile mit der angegebenen Schriftart gezeichnet wird. Wie der Text gezeichnet wird, können Sie mithilfe einer der Überladungen von DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Rectangle, Color, TextFormatFlags) beeinflussen, die einen TextFormatFlags-Parameter akzeptiert. Standardmäßig fügt TextRenderer dem umgebenden Rechteck des gezeichneten Texts einen Abstand hinzu, damit überhängende Symbole aufgenommen werden können. Wenn Sie eine Textzeile ohne diesen zusätzlichen Leerraum zeichnen müssen, empfiehlt es sich, die Versionen von DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Point, Color) und MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font) zu verwenden, die eine Größe und einen TextFormatFlags-Parameter akzeptieren. Ein Beispiel finden Sie unter MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Gilt für:

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size, TextFormatFlags)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit dem angegebenen Gerätekontext, mit der angegebenen Schriftart und entsprechend den angegebenen Formatierungsanweisungen gezeichnet wird und dabei mithilfe der angegebenen Größe das anfängliche umgebende Rechteck für den Text erstellt wird.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize, System::Windows::Forms::TextFormatFlags flags);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, ReadOnlySpan<char> text, System.Drawing.Font? font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
static member MeasureText : System.Drawing.IDeviceContext * ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.Size * System.Windows.Forms.TextFormatFlags -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As ReadOnlySpan(Of Char), font As Font, proposedSize As Size, flags As TextFormatFlags) As Size

Parameter

dc
IDeviceContext

Der Gerätekontext, in dem der Text bemessen werden soll.

text
ReadOnlySpan<Char>

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

proposedSize
Size

Die Size des anfänglichen umgebenden Rechtecks.

flags
TextFormatFlags

Die Formatierungsanweisungen, die für den bemessenen Text gelten sollen.

Gibt zurück

Die Size des mit dem angegebenen text und Format gezeichneten font in Pixel.

Ausnahmen

dc ist null

Gilt für:

MeasureText(ReadOnlySpan<Char>, Font, Size)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit der angegebenen Schriftart gezeichnet wird und dabei mithilfe der angegebenen Größe ein anfängliches umgebendes Rechteck erstellt wird.

public:
 static System::Drawing::Size MeasureText(ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize);
public static System.Drawing.Size MeasureText (ReadOnlySpan<char> text, System.Drawing.Font? font, System.Drawing.Size proposedSize);
static member MeasureText : ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.Size -> System.Drawing.Size
Public Shared Function MeasureText (text As ReadOnlySpan(Of Char), font As Font, proposedSize As Size) As Size

Parameter

text
ReadOnlySpan<Char>

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

proposedSize
Size

Die Size des anfänglichen umgebenden Rechtecks.

Gibt zurück

Die Size des mit dem angegebenen text gezeichneten font in Pixel.

Gilt für:

MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)

Gibt die Größe des angegebenen Texts in Pixel an, wenn dieser mit dem angegebenen Gerätekontext, mit der angegebenen Schriftart und entsprechend den angegebenen Formatierungsanweisungen gezeichnet wird und dabei mithilfe der angegebenen Größe das anfängliche umgebende Rechteck für den Text erstellt wird.

public:
 static System::Drawing::Size MeasureText(System::Drawing::IDeviceContext ^ dc, System::String ^ text, System::Drawing::Font ^ font, System::Drawing::Size proposedSize, System::Windows::Forms::TextFormatFlags flags);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string text, System.Drawing.Font font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
public static System.Drawing.Size MeasureText (System.Drawing.IDeviceContext dc, string? text, System.Drawing.Font? font, System.Drawing.Size proposedSize, System.Windows.Forms.TextFormatFlags flags);
static member MeasureText : System.Drawing.IDeviceContext * string * System.Drawing.Font * System.Drawing.Size * System.Windows.Forms.TextFormatFlags -> System.Drawing.Size
Public Shared Function MeasureText (dc As IDeviceContext, text As String, font As Font, proposedSize As Size, flags As TextFormatFlags) As Size

Parameter

dc
IDeviceContext

Der Gerätekontext, in dem der Text bemessen werden soll.

text
String

Der zu bemessende Text.

font
Font

Der Font, der auf den bemessenen Text angewendet werden soll.

proposedSize
Size

Die Size des anfänglichen umgebenden Rechtecks.

flags
TextFormatFlags

Die Formatierungsanweisungen, die für den bemessenen Text gelten sollen.

Gibt zurück

Die Size des mit dem angegebenen text und Format gezeichneten font in Pixel.

Ausnahmen

dc ist null.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie sie die MeasureText Methoden und DrawText verwenden, um eine einzelne Textzeile in unterschiedlichen Schriftarten zu zeichnen. Um dieses Beispiel auszuführen, fügen Sie den folgenden Code in eine Windows Form ein, und rufen Sie DrawALineOfText aus dem Ereignishandler des Formulars Paint auf, indem Sie als PaintEventArgsübergebene.

private static void DrawALineOfText(PaintEventArgs e)
{
    // Declare strings to render on the form.
    string[] stringsToPaint = { "Tail", "Spin", " Toys" };

    // Declare fonts for rendering the strings.
    Font[] fonts = { new Font("Arial", 14, FontStyle.Regular), 
        new Font("Arial", 14, FontStyle.Italic), 
        new Font("Arial", 14, FontStyle.Regular) };

    Point startPoint = new Point(10, 10);

    // Set TextFormatFlags to no padding so strings are drawn together.
    TextFormatFlags flags = TextFormatFlags.NoPadding;

    // Declare a proposed size with dimensions set to the maximum integer value.
    Size proposedSize = new Size(int.MaxValue, int.MaxValue);

    // Measure each string with its font and NoPadding value and 
    // draw it to the form.
    for (int i = 0; i < stringsToPaint.Length; i++)
    {
        Size size = TextRenderer.MeasureText(e.Graphics, stringsToPaint[i], 
            fonts[i], proposedSize, flags);
        Rectangle rect = new Rectangle(startPoint, size);
        TextRenderer.DrawText(e.Graphics, stringsToPaint[i], fonts[i],
            startPoint, Color.Black, flags);
        startPoint.X += size.Width;
    }
}
Private Sub DrawALineOfText(ByVal e As PaintEventArgs)
    ' Declare strings to render on the form.
    Dim stringsToPaint() As String = {"Tail", "Spin", " Toys"}

    ' Declare fonts for rendering the strings.
    Dim fonts() As Font = {New Font("Arial", 14, FontStyle.Regular), _
        New Font("Arial", 14, FontStyle.Italic), _
        New Font("Arial", 14, FontStyle.Regular)}

    Dim startPoint As New Point(10, 10)

    ' Set TextFormatFlags to no padding so strings are drawn together.
    Dim flags As TextFormatFlags = TextFormatFlags.NoPadding

    ' Declare a proposed size with dimensions set to the maximum integer value.
    Dim proposedSize As Size = New Size(Integer.MaxValue, Integer.MaxValue)

    ' Measure each string with its font and NoPadding value and draw it to the form.
    For i As Integer = 0 To stringsToPaint.Length - 1
        Dim size As Size = TextRenderer.MeasureText(e.Graphics, _
            stringsToPaint(i), fonts(i), proposedSize, flags)
        Dim rect As Rectangle = New Rectangle(startPoint, size)
        TextRenderer.DrawText(e.Graphics, stringsToPaint(i), fonts(i), _
            startPoint, Color.Black, flags)
        startPoint.X += size.Width
    Next
End Sub

Hinweise

Die MeasureText -Methode verwendet die proposedSize Parameter und flags , um die Beziehung zwischen Höhe und Breite anzugeben, wenn die Textgröße bestimmt wird. Wenn beim Messen von Text in einer einzelnen Zeile der proposedSize Parameter eine mit einer Size Höhendimension größer als Int32.MaxValuedarstellt, wird die zurückgegebene so angepasst, dass die tatsächliche Höhe des Texts widergespiegelt Size wird.

Wie der Text gezeichnet wird, können Sie mithilfe einer der Überladungen von DrawText beeinflussen, die einen TextFormatFlags-Parameter akzeptiert. Standardmäßig fügt TextRenderer dem umgebenden Rechteck des gezeichneten Texts einen Abstand hinzu, damit überhängende Symbole aufgenommen werden können. Wenn Sie eine Textzeile ohne diese zusätzlichen Leerzeichen zeichnen müssen, verwenden Sie die Versionen von DrawText und MeasureText , die einen Size - und TextFormatFlags -Parameter annehmen, wie im Beispiel gezeigt.

Gilt für: