TextRenderer.MeasureText Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Misura il testo specificato quando viene creato con il tipo di carattere specificato.
Overload
MeasureText(String, Font, Size, TextFormatFlags) |
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale. |
MeasureText(ReadOnlySpan<Char>, Font, Size, TextFormatFlags) |
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale. |
MeasureText(IDeviceContext, String, Font, Size) |
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato nel contesto di periferica specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale per il testo. |
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size) |
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato nel contesto di periferica specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale per il testo. |
MeasureText(String, Font, Size) |
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale. |
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font) |
Fornisce le dimensioni, in pixel, del testo specificato disegnato con il tipo di carattere specificato nel contesto di periferica specificato. |
MeasureText(IDeviceContext, String, Font) |
Fornisce le dimensioni, in pixel, del testo specificato disegnato con il tipo di carattere specificato nel contesto di periferica specificato. |
MeasureText(String, Font) |
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato. |
MeasureText(ReadOnlySpan<Char>, Font) |
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato. |
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size, TextFormatFlags) |
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il contesto di periferica, il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale. |
MeasureText(ReadOnlySpan<Char>, Font, Size) |
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale. |
MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) |
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il contesto di periferica, il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale. |
MeasureText(String, Font, Size, TextFormatFlags)
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.
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
Parametri
- text
- String
Testo da misurare.
- flags
- TextFormatFlags
Istruzioni di formattazione da applicare al testo misurato.
Restituisce
Struttura Size, in pixel, del parametro text
creato con il parametro font
e il formato specificati.
Esempio
Nell'esempio di codice seguente viene illustrato come usare uno dei MeasureText metodi. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText
dal gestore eventi del Paint modulo, passando e
come 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
Commenti
MeasureText usa i proposedSize
parametri e flags
per indicare la relazione di altezza a larghezza quando si determina la dimensione del testo. Quando si misura il testo su una singola riga, se il proposedSize
parametro rappresenta un Size oggetto con una dimensione di altezza maggiore di Int32.MaxValue, il testo restituito Size verrà modificato in modo da riflettere l'altezza effettiva del testo.
È possibile modificare il modo in cui viene creato il testo utilizzando uno degli overload DrawText che accetta un parametro TextFormatFlags. Ad esempio, il comportamento predefinito della classe TextRenderer è di aggiungere spaziatura al rettangolo di delimitazione del testo creato per sistemare le parti sporgenti delle icone. Se è necessario creare una riga di testo senza tale spazio aggiuntivo, è necessario utilizzare le versioni dei metodi DrawText e MeasureText che accettano un parametro Size e TextFormatFlags. Per un esempio, vedere MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).
Nota
Questo overload di MeasureText(String, Font, Size, TextFormatFlags) ignorerà un TextFormatFlags valore di NoPadding o LeftAndRightPadding. Se si specifica un valore di riempimento diverso dal valore predefinito, è consigliabile usare l'overload di MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags) che accetta un IDeviceContext oggetto.
Si applica a
MeasureText(ReadOnlySpan<Char>, Font, Size, TextFormatFlags)
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.
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
Parametri
- text
- ReadOnlySpan<Char>
Testo da misurare.
- flags
- TextFormatFlags
Istruzioni di formattazione da applicare al testo misurato.
Restituisce
Struttura Size, in pixel, del parametro text
creato con il parametro font
e il formato specificati.
Eccezioni
La classe ModifyString è stata impostata.
Si applica a
MeasureText(IDeviceContext, String, Font, Size)
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato nel contesto di periferica specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale per il testo.
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
Parametri
Contesto di periferica in cui misurare il testo.
- text
- String
Testo da misurare.
Restituisce
Struttura Size, in pixel, del parametro text
creato con il parametro font
specificato.
Eccezioni
dc
è null
.
Esempio
Nell'esempio di codice seguente viene illustrato come usare uno dei MeasureText metodi. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText
dal gestore eventi del Paint modulo, passando e
come 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
Commenti
Il MeasureText metodo usa il proposedSize
parametro per indicare la relazione di altezza a larghezza quando si determina la dimensione del testo. Quando si misura il testo su una singola riga, se il proposedSize
parametro rappresenta un Size oggetto con una dimensione di altezza maggiore di Int32.MaxValue, il testo restituito Size verrà modificato in modo da riflettere l'altezza effettiva del testo.
Si applica a
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size)
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato nel contesto di periferica specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale per il testo.
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
Parametri
Contesto di periferica in cui misurare il testo.
- text
- ReadOnlySpan<Char>
Testo da misurare.
Restituisce
Struttura Size, in pixel, del parametro text
creato con il parametro font
specificato.
Eccezioni
dc
costruito in modo predefinito è null
.
Si applica a
MeasureText(String, Font, Size)
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale.
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
Parametri
- text
- String
Testo da misurare.
Restituisce
Struttura Size, in pixel, del parametro text
creato con il parametro font
specificato.
Esempio
Nell'esempio di codice seguente viene illustrato come usare uno dei MeasureText metodi. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText
dal gestore eventi del Paint modulo, passando e
come 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
Commenti
Il MeasureText metodo usa il proposedSize
parametro per indicare la relazione di altezza a larghezza quando si determina la dimensione del testo. Quando si misura il testo su una singola riga, se il proposedSize
parametro rappresenta un Size oggetto con una dimensione di altezza maggiore di Int32.MaxValue, il testo restituito Size verrà modificato in modo da riflettere l'altezza effettiva del testo.
Si applica a
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font)
Fornisce le dimensioni, in pixel, del testo specificato disegnato con il tipo di carattere specificato nel contesto di periferica specificato.
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
Parametri
Contesto di periferica in cui misurare il testo.
- text
- ReadOnlySpan<Char>
Testo da misurare.
Restituisce
Size, in pixel, di text
creato con font
specificato nel contesto di dispositivo specificato.
Eccezioni
dc
costruito in modo predefinito è null
.
Si applica a
MeasureText(IDeviceContext, String, Font)
Fornisce le dimensioni, in pixel, del testo specificato disegnato con il tipo di carattere specificato nel contesto di periferica specificato.
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
Parametri
Contesto di periferica in cui misurare il testo.
- text
- String
Testo da misurare.
Restituisce
Struttura Size, in pixel, del parametro text
creato su una sola riga con il parametro font
specificato nel contesto di periferica specificato.
Esempio
Nell'esempio di codice seguente viene illustrato come usare uno dei MeasureText metodi. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare DrawALineOfText
dal gestore eventi del Paint modulo, passando e
come 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
Commenti
Il MeasureText metodo richiede che il testo venga disegnato su una singola riga.
Si applica a
MeasureText(String, Font)
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato.
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
Parametri
- text
- String
Testo da misurare.
Restituisce
Struttura Size, in pixel, del parametro text
creato su una sola riga con il parametro font
specificato. È possibile modificare il modo in cui viene creato il testo utilizzando uno degli overload DrawText(IDeviceContext, String, Font, Rectangle, Color, TextFormatFlags) che accetta un parametro TextFormatFlags. Ad esempio, il comportamento predefinito della classe TextRenderer è di aggiungere spaziatura al rettangolo di delimitazione del testo creato per sistemare le parti sporgenti delle icone. Se è necessario creare una riga di testo senza tale spazio aggiuntivo, è necessario utilizzare le versioni dei metodi DrawText(IDeviceContext, String, Font, Point, Color) e MeasureText(IDeviceContext, String, Font) che accettano un parametro Size e TextFormatFlags. Per un esempio, vedere MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).
Esempio
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare il metodo MeasureText. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare MeasureText1
dal gestore eventi del Paint modulo, passando e
come 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
Commenti
Il MeasureText metodo richiede che il testo venga disegnato su una singola riga.
Si applica a
MeasureText(ReadOnlySpan<Char>, Font)
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato.
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
Parametri
- text
- ReadOnlySpan<Char>
Testo da misurare.
Restituisce
Size, in pixel, di testo creato su una singola riga con il tipo di carattere specificato. È possibile modificare il modo in cui viene creato il testo utilizzando uno degli overload DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Rectangle, Color, TextFormatFlags) che accetta un parametro TextFormatFlags. Ad esempio, il comportamento predefinito della classe TextRenderer è di aggiungere spaziatura al rettangolo di delimitazione del testo creato per sistemare le parti sporgenti delle icone. Se è necessario creare una riga di testo senza questi spazi aggiuntivi, è necessario usare le versioni dei metodi DrawText(IDeviceContext, ReadOnlySpan<Char>, Font, Point, Color) e MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font) che accettano un parametro Size e TextFormatFlags. Per un esempio, vedere MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags).
Si applica a
MeasureText(IDeviceContext, ReadOnlySpan<Char>, Font, Size, TextFormatFlags)
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il contesto di periferica, il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.
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
Parametri
Contesto di periferica in cui misurare il testo.
- text
- ReadOnlySpan<Char>
Testo da misurare.
- flags
- TextFormatFlags
Istruzioni di formattazione da applicare al testo misurato.
Restituisce
Struttura Size, in pixel, del parametro text
creato con il parametro font
e il formato specificati.
Eccezioni
dc
è null
.
La classe ModifyString è stata impostata.
Si applica a
MeasureText(ReadOnlySpan<Char>, Font, Size)
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il tipo di carattere specificato, utilizzando la dimensione specificata per creare un rettangolo di delimitazione iniziale.
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
Parametri
- text
- ReadOnlySpan<Char>
Testo da misurare.
Restituisce
Struttura Size, in pixel, del parametro text
creato con il parametro font
specificato.
Si applica a
MeasureText(IDeviceContext, String, Font, Size, TextFormatFlags)
Fornisce le dimensioni, in pixel, del testo specificato al momento della creazione con il contesto di periferica, il tipo di carattere e le istruzioni di formattazione specificati, utilizzando la dimensione specificata per creare il rettangolo di delimitazione iniziale.
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
Parametri
Contesto di periferica in cui misurare il testo.
- text
- String
Testo da misurare.
- flags
- TextFormatFlags
Istruzioni di formattazione da applicare al testo misurato.
Restituisce
Struttura Size, in pixel, del parametro text
creato con il parametro font
e il formato specificati.
Eccezioni
dc
è null
.
Esempio
Nell'esempio seguente viene illustrato come utilizzare i MeasureText metodi e DrawText per disegnare una singola riga di testo in stili di carattere diversi. Per eseguire questo esempio, incollare il codice seguente in un Windows Form e chiamare DrawALineOfText
dal gestore eventi del Paint modulo, passando e
come 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
Commenti
Il MeasureText metodo usa i proposedSize
parametri e flags
per indicare la relazione tra altezza e larghezza durante la determinazione delle dimensioni del testo. Quando si misura il testo su una singola riga, se il proposedSize
parametro rappresenta un Size oggetto con una dimensione di altezza maggiore di Int32.MaxValue, l'oggetto restituito Size verrà regolato in modo da riflettere l'altezza effettiva del testo.
È possibile modificare il modo in cui viene creato il testo utilizzando uno degli overload DrawText che accetta un parametro TextFormatFlags. Ad esempio, il comportamento predefinito della classe TextRenderer è di aggiungere spaziatura al rettangolo di delimitazione del testo creato per sistemare le parti sporgenti delle icone. Se è necessario disegnare una riga di testo senza questi spazi aggiuntivi, usare le versioni di DrawText e che accettano un Size parametro e MeasureTextTextFormatFlags , come illustrato nell'esempio.