War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern

TextRenderer.MeasureText-Methode (IDeviceContext, String, Font, Size, TextFormatFlags)

Hinweis: Diese Methode ist neu in .NET Framework, Version 2.0.

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.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

public static Size MeasureText (
	IDeviceContext dc,
	string text,
	Font font,
	Size proposedSize,
	TextFormatFlags flags
)
public static Size MeasureText (
	IDeviceContext dc, 
	String text, 
	Font font, 
	Size proposedSize, 
	TextFormatFlags flags
)
public static function MeasureText (
	dc : IDeviceContext, 
	text : String, 
	font : Font, 
	proposedSize : Size, 
	flags : TextFormatFlags
) : Size

Parameter

dc

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

text

Der zu bemessende Text.

font

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

proposedSize

Die Size des anfänglichen umgebenden Rechtecks.

flags

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

Rückgabewert

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

AusnahmetypBedingung

ArgumentNullException

dc ist NULL (Nothing in Visual Basic).

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, wie im Beispiel veranschaulicht.

Im folgenden Beispiel wird gezeigt, wie mithilfe der MeasureText-Methode und der DrawText-Methode eine einzelne Textzeile in unterschiedlichen Schriftschnitten gezeichnet wird. Fügen Sie zum Ausführen dieses Beispiels den folgenden 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 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0
Anzeigen:
© 2015 Microsoft