TextRenderer.MeasureText Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.
- 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 veranschaulicht, wie eine der MeasureText Methoden verwendet wird. Um dieses Beispiel auszuführen, fügen Sie den Code in ein Windows Formular ein, und rufen Sie DrawALineOfText
den Ereignishandler des Formulars Paint auf, und übergeben e
Sie ihn als PaintEventArgs.
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, flags
um die Beziehung zwischen Höhe und Breite anzugeben, wenn die Textgröße bestimmt wird. Wenn der Parameter text Int32.MaxValueSize in einer einzelnen Zeile misst, wird der proposedSize
zurückgegebene Size Wert entsprechend der tatsächlichen Höhe des Texts angepasst.
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 ignoriert MeasureText(String, Font, Size, TextFormatFlags) einen TextFormatFlags Wert von NoPadding oder LeftAndRightPadding. Wenn Sie einen anderen Abstandswert als den Standard angeben, sollten Sie die Überladung verwenden MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) , die ein IDeviceContext Objekt verwendet.
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.
- 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
ModifyString ist festgelegt.
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
Der Gerätekontext, in dem der Text bemessen werden soll.
- text
- String
Der zu bemessende Text.
Gibt zurück
Die Size des mit dem angegebenen text
gezeichneten font
in Pixel.
Ausnahmen
dc
ist null
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie eine der MeasureText Methoden verwendet wird. Um dieses Beispiel auszuführen, fügen Sie den Code in ein Windows Formular ein, und rufen Sie DrawALineOfText
den Ereignishandler des Formulars Paint auf, und übergeben e
Sie ihn als PaintEventArgs.
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 der Parameter text Int32.MaxValueSize in einer einzelnen Zeile misst, wird der proposedSize
zurückgegebene Size Wert entsprechend der tatsächlichen Höhe des Texts angepasst.
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
Der Gerätekontext, in dem der Text bemessen werden soll.
- text
- ReadOnlySpan<Char>
Der zu bemessende Text.
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.
Gibt zurück
Die Size des mit dem angegebenen text
gezeichneten font
in Pixel.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie eine der MeasureText Methoden verwendet wird. Um dieses Beispiel auszuführen, fügen Sie den Code in ein Windows Formular ein, und rufen Sie DrawALineOfText
den Ereignishandler des Formulars Paint auf, und übergeben e
Sie ihn als PaintEventArgs.
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 der Parameter text Int32.MaxValueSize in einer einzelnen Zeile misst, wird der proposedSize
zurückgegebene Size Wert entsprechend der tatsächlichen Höhe des Texts angepasst.
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
Der Gerätekontext, in dem der Text bemessen werden soll.
- text
- ReadOnlySpan<Char>
Der zu bemessende Text.
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
Der Gerätekontext, in dem der Text bemessen werden soll.
- text
- String
Der zu bemessende Text.
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 veranschaulicht, wie eine der MeasureText Methoden verwendet wird. Um dieses Beispiel auszuführen, fügen Sie den Code in ein Windows Formular ein, und rufen Sie DrawALineOfText
den Ereignishandler des Formulars Paint auf, und übergeben e
Sie ihn als PaintEventArgs.
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 in 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.
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. Um dieses Beispiel auszuführen, fügen Sie den Code in ein Windows Formular ein, und rufen Sie MeasureText1
den Ereignishandler des Formulars Paint auf, und übergeben e
Sie ihn als PaintEventArgs.
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 in 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.
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
Der Gerätekontext, in dem der Text bemessen werden soll.
- text
- ReadOnlySpan<Char>
Der zu bemessende Text.
- 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
.
ModifyString ist festgelegt.
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.
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
Der Gerätekontext, in dem der Text bemessen werden soll.
- text
- String
Der zu bemessende Text.
- 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 mithilfe der MeasureText Methoden DrawText eine einzelne Textzeile in verschiedenen Schriftformatvorlagen zeichnen. Um dieses Beispiel auszuführen, fügen Sie den folgenden Code in ein Windows Formular ein, und rufen Sie DrawALineOfText
den Ereignishandler des Formulars Paint auf, und übergeben e
Sie ihn als PaintEventArgs.
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
Und-Parameter flags
, um die Beziehung der Höhe zur Breite anzugeben, wenn sie die Textgröße bestimmt. Wenn der Parameter text Int32.MaxValueSize in einer einzelnen Zeile misst, wird der proposedSize
zurückgegebene Size Wert entsprechend der tatsächlichen Höhe des Texts angepasst.
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 DrawText und MeasureText verwenden einen Size Parameter TextFormatFlags , wie im Beispiel gezeigt.