TextRenderer.MeasureText Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Měří zadaný text při kreslení pomocí zadaného písma.
Přetížení
MeasureText(String, Font, Size, TextFormatFlags) |
Poskytuje velikost zadaného textu v pixelech, když je nakreslený pomocí zadaného písma a pokynů k formátování, a použije zadanou velikost k vytvoření počátečního ohraničujícího obdélníku pro text. |
MeasureText(ReadOnlySpan<Char>, Font, Size, TextFormatFlags) |
Poskytuje velikost zadaného textu v pixelech, když je nakreslený pomocí zadaného písma a pokynů k formátování, a použije zadanou velikost k vytvoření počátečního ohraničujícího obdélníku pro text. |
MeasureText(IDeviceContext, String, Font, Size) |
Poskytuje velikost zadaného textu v pixelech, když je nakreslen zadaným písmem v zadaném kontextu zařízení, a pomocí zadané velikosti vytvoří pro text počáteční ohraničující obdélník. |
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size) |
Poskytuje velikost zadaného textu v pixelech, když je nakreslen zadaným písmem v zadaném kontextu zařízení, a pomocí zadané velikosti vytvoří pro text počáteční ohraničující obdélník. |
MeasureText(String, Font, Size) |
Poskytuje velikost zadaného textu v pixelech, když je nakreslen zadaným písmem, pomocí zadané velikosti vytvoří počáteční ohraničující obdélník. |
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font) |
Poskytuje velikost zadaného textu nakresleného zadaným písmem v pixelech v zadaném kontextu zařízení. |
MeasureText(IDeviceContext, String, Font) |
Poskytuje velikost zadaného textu nakresleného zadaným písmem v pixelech v zadaném kontextu zařízení. |
MeasureText(String, Font) |
Poskytuje velikost zadaného textu v pixelech, pokud je nakreslen zadaným písmem. |
MeasureText(ReadOnlySpan<Char>, Font) |
Poskytuje velikost zadaného textu v pixelech, pokud je nakreslen zadaným písmem. |
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size, TextFormatFlags) |
Poskytuje velikost zadaného textu v pixelech, když je nakreslený pomocí zadaného kontextu zařízení, písma a pokynů k formátování, a použije zadanou velikost k vytvoření počátečního ohraničujícího obdélníku pro text. |
MeasureText(ReadOnlySpan<Char>, Font, Size) |
Poskytuje velikost zadaného textu v pixelech, když je nakreslen zadaným písmem, pomocí zadané velikosti vytvoří počáteční ohraničující obdélník. |
MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) |
Poskytuje velikost zadaného textu v pixelech, když je nakreslený pomocí zadaného kontextu zařízení, písma a pokynů k formátování, a použije zadanou velikost k vytvoření počátečního ohraničujícího obdélníku pro text. |
MeasureText(String, Font, Size, TextFormatFlags)
Poskytuje velikost zadaného textu v pixelech, když je nakreslený pomocí zadaného písma a pokynů k formátování, a použije zadanou velikost k vytvoření počátečního ohraničujícího obdélníku pro text.
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
Text, který chcete změřit.
- flags
- TextFormatFlags
Pokyny k formátování, které se mají použít u měřeného textu.
Návraty
Objekt Sizev pixelech nakreslený text
se zadaným font
formátem a
Příklady
Následující příklad kódu ukazuje, jak použít jednu z MeasureText metod. Pokud chcete spustit tento příklad, vložte kód do formuláře Windows Form a zavolejte DrawALineOfText
ho z obslužné rutiny Paint události formuláře a předejte e
ho 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
Poznámky
MeasureText
proposedSize
používá parametry a flags
k označení vztahu výšky a šířky při určování velikosti textu. Pokud parametr při měření textu na jednom řádku proposedSize
představuje Size rozměr s výškou větší než Int32.MaxValue, bude vrácená Size hodnota upravena tak, aby odrážela skutečnou výšku textu.
Pomocí jednoho z DrawText přetížení, které přebírá TextFormatFlags parametr, můžete pracovat s tím, jak je text nakreslen. Například výchozím chováním objektu TextRenderer je přidání odsazení do ohraničujícího obdélníku nakresleného textu, aby se přizpůsobilo převislým glyfům. Pokud potřebujete nakreslit čáru textu bez těchto nadbytečných mezer, měli byste použít verze DrawText a MeasureText , které mají Size parametr a TextFormatFlags . Příklad naleznete v tématu MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).
Poznámka
Toto přetížení MeasureText(String, Font, Size, TextFormatFlags) bude ignorovat TextFormatFlags hodnotu NoPadding nebo LeftAndRightPadding. Pokud zadáváte jinou hodnotu odsazení, než je výchozí, měli byste použít přetížení objektu MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)IDeviceContext .
Platí pro
MeasureText(ReadOnlySpan<Char>, Font, Size, TextFormatFlags)
Poskytuje velikost zadaného textu v pixelech, když je nakreslený pomocí zadaného písma a pokynů k formátování, a použije zadanou velikost k vytvoření počátečního ohraničujícího obdélníku pro text.
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>
Text, který chcete změřit.
- flags
- TextFormatFlags
Pokyny k formátování, které se mají použít u měřeného textu.
Návraty
Objekt Sizev pixelech nakreslený text
se zadaným font
formátem a
Výjimky
ModifyString je nastavená.
Platí pro
MeasureText(IDeviceContext, String, Font, Size)
Poskytuje velikost zadaného textu v pixelech, když je nakreslen zadaným písmem v zadaném kontextu zařízení, a pomocí zadané velikosti vytvoří pro text počáteční ohraničující obdélník.
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
Kontext zařízení, ve kterém se má text měřit.
- text
- String
Text, který chcete změřit.
Návraty
Objekt Sizev pixelech nakreslený text
zadaným font
objektem .
Výjimky
dc
je null
.
Příklady
Následující příklad kódu ukazuje, jak použít jednu z MeasureText metod. Pokud chcete spustit tento příklad, vložte kód do formuláře Windows Form a zavolejte DrawALineOfText
ho z obslužné rutiny Paint události formuláře a předejte e
ho 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
Poznámky
Metoda MeasureText používá proposedSize
parametr k označení vztahu výšky a šířky při určování velikosti textu. Pokud parametr při měření textu na jednom řádku proposedSize
představuje Size rozměr s výškou větší než Int32.MaxValue, bude vrácená Size hodnota upravena tak, aby odrážela skutečnou výšku textu.
Platí pro
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size)
Poskytuje velikost zadaného textu v pixelech, když je nakreslen zadaným písmem v zadaném kontextu zařízení, a pomocí zadané velikosti vytvoří pro text počáteční ohraničující obdélník.
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
Kontext zařízení, ve kterém se má text měřit.
- text
- ReadOnlySpan<Char>
Text, který chcete změřit.
Návraty
Objekt Sizev pixelech nakreslený text
zadaným font
objektem .
Výjimky
dc
je null
.
Platí pro
MeasureText(String, Font, Size)
Poskytuje velikost zadaného textu v pixelech, když je nakreslen zadaným písmem, pomocí zadané velikosti vytvoří počáteční ohraničující obdélník.
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
Text, který chcete změřit.
Návraty
Objekt Sizev pixelech nakreslený text
zadaným font
objektem .
Příklady
Následující příklad kódu ukazuje, jak použít jednu z MeasureText metod. Pokud chcete spustit tento příklad, vložte kód do formuláře Windows Form a zavolejte DrawALineOfText
ho z obslužné rutiny Paint události formuláře a předejte e
ho 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
Poznámky
Metoda MeasureText používá proposedSize
parametr k označení vztahu výšky a šířky při určování velikosti textu. Pokud parametr při měření textu na jednom řádku proposedSize
představuje Size rozměr s výškou větší než Int32.MaxValue, bude vrácená Size hodnota upravena tak, aby odrážela skutečnou výšku textu.
Platí pro
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)
Poskytuje velikost zadaného textu nakresleného zadaným písmem v pixelech v zadaném kontextu zařízení.
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
Kontext zařízení, ve kterém se má text měřit.
- text
- ReadOnlySpan<Char>
Text, který chcete změřit.
Návraty
Nakreslený Sizeobjekt v pixelech text
s hodnotou zadanou font
v zadaném kontextu zařízení.
Výjimky
dc
je null
.
Platí pro
MeasureText(IDeviceContext, String, Font)
Poskytuje velikost zadaného textu nakresleného zadaným písmem v pixelech v zadaném kontextu zařízení.
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
Kontext zařízení, ve kterém se má text měřit.
- text
- String
Text, který chcete změřit.
Návraty
Hodnota Sizev pixelech nakreslená text
na jednu čáru s hodnotou zadanou font
v zadaném kontextu zařízení.
Příklady
Následující příklad kódu ukazuje, jak použít jednu z MeasureText metod. Pokud chcete spustit tento příklad, vložte kód do formuláře Windows Form a zavolejte DrawALineOfText
ho z obslužné rutiny Paint události formuláře a předejte e
ho 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
Poznámky
Metoda MeasureText vyžaduje, aby byl text nakreslen na jeden řádek.
Platí pro
MeasureText(String, Font)
Poskytuje velikost zadaného textu v pixelech při kreslení pomocí zadaného písma.
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
Text, který chcete změřit.
Návraty
Objekt Sizev pixelech nakreslený text
na jednu čáru se zadaným font
objektem . Pomocí jednoho z DrawText(IDeviceContext, String, Font, Rectangle, Color, TextFormatFlags) přetížení, které přebírá TextFormatFlags parametr, můžete pracovat s tím, jak je text nakreslen. Například výchozím chováním objektu TextRenderer je přidání odsazení do ohraničujícího obdélníku nakresleného textu, aby se přizpůsobilo převislým glyfům. Pokud potřebujete nakreslit čáru textu bez těchto nadbytečných mezer, měli byste použít verze DrawText(IDeviceContext, String, Font, Point, Color) a MeasureText(IDeviceContext, String, Font) , které mají Size parametr a TextFormatFlags . Příklad naleznete v tématu MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).
Příklady
Následující příklad kódu ukazuje, jak použít metodu MeasureText . Pokud chcete spustit tento příklad, vložte kód do formuláře Windows Form a zavolejte MeasureText1
ho z obslužné rutiny Paint události formuláře a předejte e
ho 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
Poznámky
Metoda MeasureText vyžaduje, aby byl text nakreslen na jeden řádek.
Platí pro
MeasureText(ReadOnlySpan<Char>, Font)
Poskytuje velikost zadaného textu v pixelech při kreslení pomocí zadaného písma.
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>
Text, který se má změřit.
Návraty
Text Sizenakreslený na jednom řádku se zadaným písmem (v pixelech). S vykreslením textu můžete manipulovat pomocí jednoho z DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Rectangle, Color, TextFormatFlags) přetížení, které přebírá TextFormatFlags parametr. Například výchozím chováním objektu TextRenderer je přidání odsazení do ohraničujícího obdélníku nakresleného textu, aby bylo možné přizpůsobit převislé glyfy. Pokud potřebujete nakreslit čáru textu bez těchto nadbytečných mezer, měli byste použít verze DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Point, Color) a MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font) , které mají velikost a TextFormatFlags parametr. Příklad naleznete v tématu MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).
Platí pro
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size, TextFormatFlags)
Poskytuje velikost zadaného textu v pixelech při kreslení se zadaným kontextem zařízení, písmem a pokyny pro formátování, přičemž zadanou velikost použije k vytvoření počátečního ohraničujícího obdélníku pro text.
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
Kontext zařízení, ve kterém se má text měřit.
- text
- ReadOnlySpan<Char>
Text, který se má změřit.
- flags
- TextFormatFlags
Pokyny k formátování, které se mají použít u měřeného textu.
Návraty
Objekt Sizenakreslený zadaným formátem font
v pixelechtext
.
Výjimky
dc
je null
.
ModifyString je nastavená.
Platí pro
MeasureText(ReadOnlySpan<Char>, Font, Size)
Poskytuje velikost zadaného textu v pixelech při kreslení se zadaným písmem a pomocí zadané velikosti vytvoří počáteční ohraničující obdélník.
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>
Text, který se má změřit.
Návraty
Objekt Sizenakreslený text
zadaným font
objektem v pixelech
Platí pro
MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)
Poskytuje velikost zadaného textu v pixelech při kreslení se zadaným kontextem zařízení, písmem a pokyny pro formátování, přičemž zadanou velikost použije k vytvoření počátečního ohraničujícího obdélníku pro text.
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
Kontext zařízení, ve kterém se má text měřit.
- text
- String
Text, který se má změřit.
- flags
- TextFormatFlags
Pokyny k formátování, které se mají použít u měřeného textu.
Návraty
Objekt Sizenakreslený zadaným formátem font
v pixelechtext
.
Výjimky
dc
je null
.
Příklady
Následující příklad ukazuje, jak pomocí MeasureText metod a DrawText nakreslit jeden řádek textu v různých stylech písma. Pokud chcete spustit tento příklad, vložte do formuláře Windows Form následující kód a zavolejte DrawALineOfText
ho z obslužné rutiny Paint události formuláře a předejte e
ho 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
Poznámky
Metoda MeasureText používá proposedSize
parametry a flags
k označení vztahu výšky a šířky při určování velikosti textu. Pokud parametr při měření textu na jednom řádku představuje Size hodnotu s rozměrem výšky větším než Int32.MaxValue, Size vrácená hodnota se upraví tak, proposedSize
aby odrážela skutečnou výšku textu.
S vykreslením textu můžete manipulovat pomocí jednoho z DrawText přetížení, které přebírá TextFormatFlags parametr. Například výchozím chováním objektu TextRenderer je přidání odsazení do ohraničujícího obdélníku nakresleného textu, aby bylo možné přizpůsobit převislé glyfy. Pokud potřebujete nakreslit čáru textu bez těchto nadbytečných mezer, použijte verze DrawText a MeasureText , které mají Size parametr a TextFormatFlags , jak je znázorněno v příkladu.