Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
TextRenderer.MeasureText-Methode (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.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
public static Size MeasureText( IDeviceContext dc, string text, Font font, Size proposedSize, TextFormatFlags flags )
Parameter
- dc
- Typ: System.Drawing.IDeviceContext
Der Gerätekontext, in dem der Text bemessen werden soll.
- 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.
| Ausnahme | Bedingung |
|---|---|
| ArgumentNullException |
dc ist null. |
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 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.