TextRenderer.MeasureText-Methode (String, Font, Size, TextFormatFlags)
Aktualisiert: November 2007
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.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
public static Size MeasureText( string text, Font font, Size proposedSize, TextFormatFlags flags )
public static Size MeasureText( String text, Font font, Size proposedSize, TextFormatFlags flags )
public static function MeasureText( text : String, font : Font, proposedSize : Size, flags : TextFormatFlags ) : Size
Parameter
- text
- Typ: System.String
Der zu bemessende Text.
- font
- Typ: System.Drawing.Font
Der Font, der auf den bemessenen Text angewendet werden soll.
- proposedSize
- Typ: System.Drawing.Size
Die Size des anfänglichen umgebenden Rechtecks.
- flags
- Typ: System.Windows.Forms.TextFormatFlags
Die Formatierungsanweisungen, die für den bemessenen Text gelten sollen.
Rückgabewert
Typ: System.Drawing.SizeDie Size des mit dem angegebenen font und Format gezeichneten text in Pixel.
Die MeasureText-Methode gibt mithilfe des proposedSize-Parameters und des flags-Parameters beim Bestimmen der Textgröße das Verhältnis von Höhe zu Breite an. Wenn beim Bemessen des Texts in einer einzelnen Zeile der proposedSize-Parameter eine Size darstellt, bei der eine Höhenabmessung größer als Int32.MaxValue ist, wird die zurückgegebene Size so angepasst, dass sie die tatsächliche Texthöhe wiedergibt.
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 von NoPadding oder LeftAndRightPadding. Wenn Sie nicht den Standardwert für den Leerraum angeben, sollten Sie die Überladung von MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) verwenden, die ein IDeviceContext-Objekt akzeptiert. |
Im folgenden Codebeispiel wird die Verwendung einer der MeasureText-Methoden veranschaulicht. Fügen Sie zum Ausführen des Beispiels den Code in ein Windows Form ein, und rufen Sie DrawALineOfText im Paint-Ereignishandler des Formulars auf, wobei Sie e als PaintEventArgs übergeben.
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; } }
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Hinweis: