Bagikan melalui


TextRenderer.MeasureText Metode

Definisi

Mengukur teks yang ditentukan ketika digambar dengan font yang ditentukan.

Overload

MeasureText(String, Font, Size, TextFormatFlags)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan instruksi font dan pemformatan yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

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

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan instruksi font dan pemformatan yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

MeasureText(IDeviceContext, String, Font, Size)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan dalam konteks perangkat yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

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

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan dalam konteks perangkat yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

MeasureText(String, Font, Size)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal.

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan yang digambar dengan font yang ditentukan dalam konteks perangkat yang ditentukan.

MeasureText(IDeviceContext, String, Font)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan yang digambar dengan font yang ditentukan dalam konteks perangkat yang ditentukan.

MeasureText(String, Font)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan.

MeasureText(ReadOnlySpan<Char>, Font)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan.

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

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan konteks perangkat, font, dan instruksi pemformatan yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

MeasureText(ReadOnlySpan<Char>, Font, Size)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal.

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

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan konteks perangkat, font, dan instruksi pemformatan yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

MeasureText(String, Font, Size, TextFormatFlags)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan instruksi font dan pemformatan yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

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

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

proposedSize
Size

Size Persegi panjang pembatas awal.

flags
TextFormatFlags

Instruksi pemformatan untuk diterapkan ke teks yang diukur.

Mengembalikan

Size, dalam piksel, digambar text dengan format dan yang ditentukanfont.

Contoh

Contoh kode berikut menunjukkan cara menggunakan salah MeasureText satu metode. Untuk menjalankan contoh ini, tempelkan kode ke dalam Formulir Windows dan panggil DrawALineOfText dari penanganan aktivitas formulir Paint , meneruskan e sebagai 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

Keterangan

MeasureTextproposedSize menggunakan parameter dan flags untuk menunjukkan hubungan tinggi ke lebar saat menentukan ukuran teks. Saat mengukur teks pada satu baris, jika proposedSize parameter mewakili Size dengan dimensi tinggi yang lebih besar dari Int32.MaxValue, yang dikembalikan Size akan disesuaikan untuk mencerminkan tinggi teks yang sebenarnya.

Anda dapat memanipulasi bagaimana teks digambar dengan menggunakan salah DrawText satu kelebihan beban yang mengambil TextFormatFlags parameter. Misalnya, perilaku default adalah TextRenderer menambahkan padding ke persegi panjang pembatas teks yang digambar untuk mengakomodasi glyph yang membantai. Jika Anda perlu menggambar baris teks tanpa spasi tambahan ini, Anda harus menggunakan versi DrawText dan yang mengambil Size parameter dan TextFormatFlagsMeasureText . Misalnya, lihat MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Catatan

Kelebihan beban MeasureText(String, Font, Size, TextFormatFlags) ini akan mengabaikan TextFormatFlags nilai NoPadding atau LeftAndRightPadding. Jika Anda menentukan nilai padding selain default, Anda harus menggunakan kelebihan beban MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) yang mengambil IDeviceContext objek.

Berlaku untuk

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

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan instruksi font dan pemformatan yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

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>

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

proposedSize
Size

Size Persegi panjang pembatas awal.

flags
TextFormatFlags

Instruksi pemformatan untuk diterapkan ke teks yang diukur.

Mengembalikan

Size, dalam piksel, digambar text dengan format dan yang ditentukanfont.

Pengecualian

Berlaku untuk

MeasureText(IDeviceContext, String, Font, Size)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan dalam konteks perangkat yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

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

Konteks perangkat untuk mengukur teks.

text
String

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

proposedSize
Size

Size Persegi panjang pembatas awal.

Mengembalikan

Size, dalam piksel, digambar text dengan yang ditentukan font.

Pengecualian

dcadalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan salah MeasureText satu metode. Untuk menjalankan contoh ini, tempelkan kode ke dalam Formulir Windows dan panggil DrawALineOfText dari penanganan aktivitas formulir Paint , meneruskan e sebagai 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

Keterangan

Metode ini MeasureText menggunakan proposedSize parameter untuk menunjukkan hubungan tinggi ke lebar saat menentukan ukuran teks. Saat mengukur teks pada satu baris, jika proposedSize parameter mewakili Size dengan dimensi tinggi yang lebih besar dari Int32.MaxValue, yang dikembalikan Size akan disesuaikan untuk mencerminkan tinggi teks yang sebenarnya.

Berlaku untuk

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

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan dalam konteks perangkat yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

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

Konteks perangkat untuk mengukur teks.

text
ReadOnlySpan<Char>

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

proposedSize
Size

Size Persegi panjang pembatas awal.

Mengembalikan

Size, dalam piksel, digambar text dengan yang ditentukan font.

Pengecualian

dcadalah null.

Berlaku untuk

MeasureText(String, Font, Size)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal.

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

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

proposedSize
Size

Size Persegi panjang pembatas awal.

Mengembalikan

Size, dalam piksel, digambar text dengan yang ditentukan font.

Contoh

Contoh kode berikut menunjukkan cara menggunakan salah MeasureText satu metode. Untuk menjalankan contoh ini, tempelkan kode ke dalam Formulir Windows dan panggil DrawALineOfText dari penanganan aktivitas formulir Paint , meneruskan e sebagai 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

Keterangan

Metode ini MeasureText menggunakan proposedSize parameter untuk menunjukkan hubungan tinggi ke lebar saat menentukan ukuran teks. Saat mengukur teks pada satu baris, jika proposedSize parameter mewakili Size dengan dimensi tinggi yang lebih besar dari Int32.MaxValue, yang dikembalikan Size akan disesuaikan untuk mencerminkan tinggi teks yang sebenarnya.

Berlaku untuk

MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan yang digambar dengan font yang ditentukan dalam konteks perangkat yang ditentukan.

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

Konteks perangkat untuk mengukur teks.

text
ReadOnlySpan<Char>

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

Mengembalikan

Size, dalam piksel, digambar text dengan yang ditentukan font dalam konteks perangkat yang ditentukan.

Pengecualian

dcadalah null.

Berlaku untuk

MeasureText(IDeviceContext, String, Font)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan yang digambar dengan font yang ditentukan dalam konteks perangkat yang ditentukan.

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

Konteks perangkat untuk mengukur teks.

text
String

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

Mengembalikan

Size, dalam piksel, digambar text dalam satu baris dengan yang ditentukan font dalam konteks perangkat yang ditentukan.

Contoh

Contoh kode berikut menunjukkan cara menggunakan salah MeasureText satu metode. Untuk menjalankan contoh ini, tempelkan kode ke dalam Formulir Windows dan panggil DrawALineOfText dari penanganan aktivitas formulir Paint , meneruskan e sebagai 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

Keterangan

Metode MeasureText ini mengharuskan teks digambar pada satu baris.

Berlaku untuk

MeasureText(String, Font)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan.

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

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

Mengembalikan

Size, dalam piksel, digambar text pada satu baris dengan yang ditentukan font. Anda dapat memanipulasi bagaimana teks digambar dengan menggunakan salah DrawText(IDeviceContext, String, Font, Rectangle, Color, TextFormatFlags) satu kelebihan beban yang mengambil TextFormatFlags parameter. Misalnya, perilaku default adalah TextRenderer menambahkan padding ke persegi panjang pembatas teks yang digambar untuk mengakomodasi glyph yang membantai. Jika Anda perlu menggambar baris teks tanpa spasi tambahan ini, Anda harus menggunakan versi DrawText(IDeviceContext, String, Font, Point, Color) dan yang mengambil Size parameter dan TextFormatFlagsMeasureText(IDeviceContext, String, Font) . Misalnya, lihat MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Contoh

Contoh kode berikut menunjukkan cara menggunakan MeasureText metode . Untuk menjalankan contoh ini, tempelkan kode ke dalam Formulir Windows dan panggil MeasureText1 dari penanganan aktivitas formulir Paint , meneruskan e sebagai 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

Keterangan

Metode MeasureText ini mengharuskan teks digambar pada satu baris.

Berlaku untuk

MeasureText(ReadOnlySpan<Char>, Font)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan.

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>

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

Mengembalikan

, Sizedalam piksel, teks yang digambar pada satu baris dengan font yang ditentukan. Anda dapat memanipulasi bagaimana teks digambar dengan menggunakan salah DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Rectangle, Color, TextFormatFlags) satu kelebihan beban yang mengambil TextFormatFlags parameter. Misalnya, perilaku default adalah TextRenderer menambahkan padding ke persegi panjang pembatas teks yang digambar untuk mengakomodasi glyph yang membantai. Jika Anda perlu menggambar baris teks tanpa spasi tambahan ini, Anda harus menggunakan versi DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Point, Color) dan MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font) yang mengambil Ukuran dan TextFormatFlags parameter. Misalnya, lihat MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).

Berlaku untuk

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

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan konteks perangkat, font, dan instruksi pemformatan yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

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

Konteks perangkat untuk mengukur teks.

text
ReadOnlySpan<Char>

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

proposedSize
Size

Size Persegi panjang pembatas awal.

flags
TextFormatFlags

Instruksi pemformatan untuk diterapkan ke teks yang diukur.

Mengembalikan

Size, dalam piksel, digambar text dengan format dan yang ditentukanfont.

Pengecualian

dcadalah null.

Berlaku untuk

MeasureText(ReadOnlySpan<Char>, Font, Size)

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan font yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal.

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>

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

proposedSize
Size

Size Persegi panjang pembatas awal.

Mengembalikan

Size, dalam piksel, digambar text dengan yang ditentukan font.

Berlaku untuk

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

Menyediakan ukuran, dalam piksel, dari teks yang ditentukan saat digambar dengan konteks perangkat, font, dan instruksi pemformatan yang ditentukan, menggunakan ukuran yang ditentukan untuk membuat persegi panjang pembatas awal untuk teks.

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

Konteks perangkat untuk mengukur teks.

text
String

Teks yang akan diukur.

font
Font

Font untuk diterapkan ke teks yang diukur.

proposedSize
Size

Size Persegi panjang pembatas awal.

flags
TextFormatFlags

Instruksi pemformatan untuk diterapkan ke teks yang diukur.

Mengembalikan

Size, dalam piksel, digambar text dengan format dan yang ditentukanfont.

Pengecualian

dcadalah null.

Contoh

Contoh berikut menunjukkan cara menggunakan MeasureText metode dan DrawText untuk menggambar satu baris teks dalam gaya font yang berbeda. Untuk menjalankan contoh ini, tempelkan kode berikut dalam Formulir Windows dan panggil DrawALineOfText dari penanganan aktivitas formulir Paint , teruskan e sebagai 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

Keterangan

Metode ini MeasureText menggunakan proposedSize parameter dan flags untuk menunjukkan hubungan tinggi ke lebar saat menentukan ukuran teks. Saat mengukur teks pada satu baris, jika proposedSize parameter mewakili Size dengan dimensi tinggi yang lebih besar dari Int32.MaxValue, yang dikembalikan Size akan disesuaikan untuk mencerminkan tinggi teks yang sebenarnya.

Anda dapat memanipulasi bagaimana teks digambar dengan menggunakan salah DrawText satu kelebihan beban yang mengambil TextFormatFlags parameter. Misalnya, perilaku default adalah TextRenderer menambahkan padding ke persegi panjang pembatas teks yang digambar untuk mengakomodasi glyph yang membantai. Jika Anda perlu menggambar baris teks tanpa spasi tambahan ini, gunakan versi DrawText dan MeasureText yang mengambil Size parameter dan TextFormatFlags , seperti yang ditunjukkan dalam contoh.

Berlaku untuk