TextRenderer.MeasureText Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Mierzy określony tekst po narysowanym za pomocą określonej czcionki.
Przeciążenia
MeasureText(String, Font, Size, TextFormatFlags) |
Udostępnia rozmiar w pikselach określonego tekstu podczas rysowania przy użyciu określonej czcionki i instrukcji formatowania, używając określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia dla tekstu. |
MeasureText(ReadOnlySpan<Char>, Font, Size, TextFormatFlags) |
Udostępnia rozmiar w pikselach określonego tekstu podczas rysowania przy użyciu określonej czcionki i instrukcji formatowania, używając określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia dla tekstu. |
MeasureText(IDeviceContext, String, Font, Size) |
Udostępnia rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonej czcionki w określonym kontekście urządzenia przy użyciu określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia dla tekstu. |
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size) |
Udostępnia rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonej czcionki w określonym kontekście urządzenia przy użyciu określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia dla tekstu. |
MeasureText(String, Font, Size) |
Udostępnia rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonej czcionki przy użyciu określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia. |
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font) |
Zawiera rozmiar w pikselach określonego tekstu rysowanego przy użyciu określonej czcionki w określonym kontekście urządzenia. |
MeasureText(IDeviceContext, String, Font) |
Zawiera rozmiar w pikselach określonego tekstu rysowanego przy użyciu określonej czcionki w określonym kontekście urządzenia. |
MeasureText(String, Font) |
Zapewnia rozmiar w pikselach określonego tekstu podczas rysowania przy użyciu określonej czcionki. |
MeasureText(ReadOnlySpan<Char>, Font) |
Zapewnia rozmiar w pikselach określonego tekstu podczas rysowania przy użyciu określonej czcionki. |
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size, TextFormatFlags) |
Zawiera rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonego kontekstu urządzenia, czcionki i instrukcji formatowania przy użyciu określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia dla tekstu. |
MeasureText(ReadOnlySpan<Char>, Font, Size) |
Udostępnia rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonej czcionki przy użyciu określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia. |
MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) |
Zawiera rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonego kontekstu urządzenia, czcionki i instrukcji formatowania przy użyciu określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia dla tekstu. |
MeasureText(String, Font, Size, TextFormatFlags)
Udostępnia rozmiar w pikselach określonego tekstu podczas rysowania przy użyciu określonej czcionki i instrukcji formatowania, używając określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia dla tekstu.
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
Parametry
- text
- String
Tekst do zmierzenia.
- flags
- TextFormatFlags
Instrukcje formatowania stosowane do mierzonego tekstu.
Zwraca
Wartość Size, w pikselach text
, narysowana przy użyciu określonego font
formatu i .
Przykłady
W poniższym przykładzie kodu pokazano, jak używać jednej z MeasureText metod. Aby uruchomić ten przykład, wklej kod do formularza systemu Windows i wywołaj DrawALineOfText
go z procedury obsługi zdarzeń formularza Paint , przekazując e
jako 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
Uwagi
MeasureText używa parametrów proposedSize
i flags
, aby wskazać relację wysokości do szerokości podczas określania rozmiaru tekstu. Podczas mierzenia tekstu w jednym wierszu, jeśli proposedSize
parametr reprezentuje Size wymiar wysokości większy niż Int32.MaxValue, zwrócony Size tekst zostanie dostosowany w celu odzwierciedlenia rzeczywistej wysokości tekstu.
Możesz manipulować sposobem narysowania tekstu przy użyciu jednego z DrawText przeciążeń, które przyjmuje TextFormatFlags parametr. Na przykład domyślnym zachowaniem elementu TextRenderer jest dodanie dopełnienia do prostokąta ograniczenia rysowanego tekstu, aby pomieścić zwisające glyphs. Jeśli musisz narysować wiersz tekstu bez tych dodatkowych spacji, należy użyć wersji i DrawTextMeasureText , które przyjmują Size parametr i TextFormatFlags . Aby zapoznać się z przykładem, zobacz MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).
Uwaga
To przeciążenie MeasureText(String, Font, Size, TextFormatFlags) elementu spowoduje zignorowanie TextFormatFlags wartości NoPadding lub LeftAndRightPadding. Jeśli określasz wartość dopełniania inną niż domyślna, należy użyć przeciążenia MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) tego IDeviceContext obiektu.
Dotyczy
MeasureText(ReadOnlySpan<Char>, Font, Size, TextFormatFlags)
Udostępnia rozmiar w pikselach określonego tekstu podczas rysowania przy użyciu określonej czcionki i instrukcji formatowania, używając określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia dla tekstu.
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
Parametry
- text
- ReadOnlySpan<Char>
Tekst do zmierzenia.
- flags
- TextFormatFlags
Instrukcje formatowania stosowane do mierzonego tekstu.
Zwraca
Wartość Size, w pikselach text
, narysowana przy użyciu określonego font
formatu i .
Wyjątki
ModifyString jest ustawiona.
Dotyczy
MeasureText(IDeviceContext, String, Font, Size)
Udostępnia rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonej czcionki w określonym kontekście urządzenia przy użyciu określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia dla tekstu.
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
Parametry
Kontekst urządzenia, w którym ma być mierzyny tekst.
- text
- String
Tekst do zmierzenia.
Zwraca
Wartość Size, w pikselach text
narysowana za pomocą określonego font
elementu .
Wyjątki
dc
to null
.
Przykłady
W poniższym przykładzie kodu pokazano, jak używać jednej z MeasureText metod. Aby uruchomić ten przykład, wklej kod do formularza systemu Windows i wywołaj DrawALineOfText
go z procedury obsługi zdarzeń formularza Paint , przekazując e
jako 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
Uwagi
Metoda MeasureText używa parametru , proposedSize
aby wskazać relację wysokości do szerokości podczas określania rozmiaru tekstu. Podczas mierzenia tekstu w jednym wierszu, jeśli proposedSize
parametr reprezentuje Size wymiar wysokości większy niż Int32.MaxValue, zwrócony Size tekst zostanie dostosowany w celu odzwierciedlenia rzeczywistej wysokości tekstu.
Dotyczy
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size)
Udostępnia rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonej czcionki w określonym kontekście urządzenia przy użyciu określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia dla tekstu.
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
Parametry
Kontekst urządzenia, w którym ma być mierzyny tekst.
- text
- ReadOnlySpan<Char>
Tekst do zmierzenia.
Zwraca
Wartość Size, w pikselach text
narysowana za pomocą określonego font
elementu .
Wyjątki
dc
to null
.
Dotyczy
MeasureText(String, Font, Size)
Udostępnia rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonej czcionki przy użyciu określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia.
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
Parametry
- text
- String
Tekst do zmierzenia.
Zwraca
Wartość Size, w pikselach text
narysowana za pomocą określonego font
elementu .
Przykłady
W poniższym przykładzie kodu pokazano, jak używać jednej z MeasureText metod. Aby uruchomić ten przykład, wklej kod do formularza systemu Windows i wywołaj DrawALineOfText
go z procedury obsługi zdarzeń formularza Paint , przekazując e
jako 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
Uwagi
Metoda MeasureText używa parametru , proposedSize
aby wskazać relację wysokości do szerokości podczas określania rozmiaru tekstu. Podczas mierzenia tekstu w jednym wierszu, jeśli proposedSize
parametr reprezentuje Size wymiar wysokości większy niż Int32.MaxValue, zwrócony Size tekst zostanie dostosowany w celu odzwierciedlenia rzeczywistej wysokości tekstu.
Dotyczy
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)
Zawiera rozmiar w pikselach określonego tekstu rysowanego przy użyciu określonej czcionki w określonym kontekście urządzenia.
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
Parametry
Kontekst urządzenia, w którym ma być mierzyny tekst.
- text
- ReadOnlySpan<Char>
Tekst do zmierzenia.
Zwraca
Wartość Size, w pikselach text
, narysowana przy użyciu określonego font
kontekstu urządzenia.
Wyjątki
dc
to null
.
Dotyczy
MeasureText(IDeviceContext, String, Font)
Zawiera rozmiar w pikselach określonego tekstu rysowanego przy użyciu określonej czcionki w określonym kontekście urządzenia.
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
Parametry
Kontekst urządzenia, w którym ma być mierzyny tekst.
- text
- String
Tekst do zmierzenia.
Zwraca
Wartość Size, w pikselach text
, narysowana w jednym wierszu z określonym font
kontekstem urządzenia.
Przykłady
W poniższym przykładzie kodu pokazano, jak używać jednej z MeasureText metod. Aby uruchomić ten przykład, wklej kod do formularza systemu Windows i wywołaj DrawALineOfText
go z procedury obsługi zdarzeń formularza Paint , przekazując e
jako 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
Uwagi
Metoda MeasureText wymaga, aby tekst został narysowany w jednym wierszu.
Dotyczy
MeasureText(String, Font)
Udostępnia rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonej czcionki.
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
Parametry
- text
- String
Tekst do zmierzenia.
Zwraca
Wartość Size, w pikselach text
narysowana na jednym wierszu o określonej wartości font
. Możesz manipulować sposobem narysowania tekstu przy użyciu jednego z DrawText(IDeviceContext, String, Font, Rectangle, Color, TextFormatFlags) przeciążeń, które przyjmuje TextFormatFlags parametr. Na przykład domyślnym zachowaniem elementu TextRenderer jest dodanie dopełnienia do prostokąta ograniczenia rysowanego tekstu, aby pomieścić zwisające glyphs. Jeśli musisz narysować wiersz tekstu bez tych dodatkowych spacji, należy użyć wersji DrawText(IDeviceContext, String, Font, Point, Color) i MeasureText(IDeviceContext, String, Font) , które przyjmują Size parametr i TextFormatFlags . Aby zapoznać się z przykładem, zobacz MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).
Przykłady
W poniższym przykładzie kodu pokazano, jak używać MeasureText metody . Aby uruchomić ten przykład, wklej kod do formularza systemu Windows i wywołaj MeasureText1
go z procedury obsługi zdarzeń formularza Paint , przekazując e
jako 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
Uwagi
Metoda MeasureText wymaga, aby tekst został narysowany w jednym wierszu.
Dotyczy
MeasureText(ReadOnlySpan<Char>, Font)
Udostępnia rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonej czcionki.
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
Parametry
- text
- ReadOnlySpan<Char>
Tekst do zmierzenia.
Zwraca
, Sizew pikselach, tekst rysowany w jednym wierszu z określoną czcionką. Możesz manipulować sposobem narysowania tekstu przy użyciu jednego z DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Rectangle, Color, TextFormatFlags) przeciążeń, które przyjmuje TextFormatFlags parametr. Na przykład domyślnym zachowaniem obiektu TextRenderer jest dodanie wypełnienia do prostokąta ograniczenia rysowanego tekstu w celu uwzględnienia zwisających kropek. Jeśli musisz narysować wiersz tekstu bez tych dodatkowych spacji, należy użyć wersji DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Point, Color) i MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font) , które przyjmują rozmiar i TextFormatFlags parametr. Aby zapoznać się z przykładem, zobacz MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).
Dotyczy
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size, TextFormatFlags)
Zawiera rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonego kontekstu urządzenia, czcionki i instrukcji formatowania, używając określonego rozmiaru do utworzenia początkowego prostokąta ograniczenia tekstu.
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
Parametry
Kontekst urządzenia, w którym ma być mierzony tekst.
- text
- ReadOnlySpan<Char>
Tekst do zmierzenia.
- flags
- TextFormatFlags
Instrukcje dotyczące formatowania stosowane do mierzonego tekstu.
Zwraca
, Sizew pikselach text
, narysowany z określonym font
i formatem.
Wyjątki
dc
to null
.
ModifyString jest ustawiona.
Dotyczy
MeasureText(ReadOnlySpan<Char>, Font, Size)
Udostępnia rozmiar określonego tekstu w pikselach po narysowaniu przy użyciu określonej czcionki przy użyciu określonego rozmiaru w celu utworzenia początkowego prostokąta ograniczenia.
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
Parametry
- text
- ReadOnlySpan<Char>
Tekst do zmierzenia.
Zwraca
, Sizew pikselach text
, narysowany z określonym font
.
Dotyczy
MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)
Zawiera rozmiar określonego tekstu w pikselach podczas rysowania przy użyciu określonego kontekstu urządzenia, czcionki i instrukcji formatowania, używając określonego rozmiaru do utworzenia początkowego prostokąta ograniczenia tekstu.
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
Parametry
Kontekst urządzenia, w którym ma być mierzony tekst.
- text
- String
Tekst do zmierzenia.
- flags
- TextFormatFlags
Instrukcje dotyczące formatowania stosowane do mierzonego tekstu.
Zwraca
, Sizew pikselach text
, narysowany z określonym font
i formatem.
Wyjątki
dc
to null
.
Przykłady
W poniższym przykładzie pokazano, jak za pomocą MeasureText metod i DrawText narysować pojedynczy wiersz tekstu w różnych stylach czcionek. Aby uruchomić ten przykład, wklej następujący kod w formularzu systemu Windows i wywołaj DrawALineOfText
metodę z procedury obsługi zdarzeń formularza Paint , przekazując e
jako 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
Uwagi
Metoda MeasureText używa proposedSize
parametrów i flags
, aby wskazać relację wysokości do szerokości podczas określania rozmiaru tekstu. Podczas mierzenia tekstu w jednym wierszu, jeśli proposedSize
parametr reprezentuje Size wymiar o wysokości większej niż Int32.MaxValue, zwrócony Size zostanie dostosowany w celu odzwierciedlenia rzeczywistej wysokości tekstu.
Możesz manipulować sposobem narysowania tekstu przy użyciu jednego z DrawText przeciążeń, które przyjmuje TextFormatFlags parametr. Na przykład domyślnym zachowaniem obiektu TextRenderer jest dodanie wypełnienia do prostokąta ograniczenia rysowanego tekstu w celu uwzględnienia zwisających kropek. Jeśli musisz narysować wiersz tekstu bez tych dodatkowych spacji, użyj wersji parametru DrawText i MeasureTextSizeTextFormatFlags , jak pokazano w przykładzie.