Ler em inglês

Partilhar via


Graphics.MeasureCharacterRanges Método

Definição

Sobrecargas

MeasureCharacterRanges(ReadOnlySpan<Char>, Font, RectangleF, StringFormat)

Obtém uma matriz de objetos Region, cada um dos quais associa um intervalo de posições de caractere dentro da cadeia de caracteres especificada.

MeasureCharacterRanges(String, Font, RectangleF, StringFormat)

Obtém uma matriz de objetos Region, cada um dos quais associa um intervalo de posições de caractere dentro da cadeia de caracteres especificada.

MeasureCharacterRanges(ReadOnlySpan<Char>, Font, RectangleF, StringFormat)

Origem:
Graphics.cs
Origem:
Graphics.cs
Origem:
Graphics.cs
Origem:
Graphics.cs

Obtém uma matriz de objetos Region, cada um dos quais associa um intervalo de posições de caractere dentro da cadeia de caracteres especificada.

C#
public System.Drawing.Region[] MeasureCharacterRanges(ReadOnlySpan<char> text, System.Drawing.Font font, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat? stringFormat);

Parâmetros

text
ReadOnlySpan<Char>

Cadeia de caracteres a ser medida.

font
Font

Font que define o formato de texto da cadeia de caracteres.

layoutRect
RectangleF

RectangleF estrutura que especifica o retângulo de layout para a cadeia de caracteres.

stringFormat
StringFormat

StringFormat que representa informações de formatação, como espaçamento de linha, para a cadeia de caracteres.

Retornos

Region[]

Esse método retorna uma matriz de objetos Region, cada um dos quais associa um intervalo de posições de caractere dentro da cadeia de caracteres especificada.

Aplica-se a

.NET 10 (package-provided) e outras versões
Produto Versões
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
Windows Desktop 8, 9, 10

MeasureCharacterRanges(String, Font, RectangleF, StringFormat)

Origem:
Graphics.cs
Origem:
Graphics.cs
Origem:
Graphics.cs
Origem:
Graphics.cs
Origem:
Graphics.cs
Origem:
Graphics.cs

Obtém uma matriz de objetos Region, cada um dos quais associa um intervalo de posições de caractere dentro da cadeia de caracteres especificada.

C#
public System.Drawing.Region[] MeasureCharacterRanges(string? text, System.Drawing.Font font, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat? stringFormat);
C#
public System.Drawing.Region[] MeasureCharacterRanges(string text, System.Drawing.Font font, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat stringFormat);

Parâmetros

text
String

Cadeia de caracteres a ser medida.

font
Font

Font que define o formato de texto da cadeia de caracteres.

layoutRect
RectangleF

RectangleF estrutura que especifica o retângulo de layout para a cadeia de caracteres.

stringFormat
StringFormat

StringFormat que representa informações de formatação, como espaçamento de linha, para a cadeia de caracteres.

Retornos

Region[]

Esse método retorna uma matriz de objetos Region, cada um dos quais associa um intervalo de posições de caractere dentro da cadeia de caracteres especificada.

Exceções

font é null.

Exemplos

O exemplo de código a seguir foi projetado para uso com o Windows Forms e requer PaintEventArgse, que é um parâmetro do manipulador de eventos Paint. O código executa as seguintes ações:

  • Define uma cadeia de caracteres "Intervalos Primeiro e Segundo" e uma fonte para exibição da cadeia de caracteres ("Times New Roman", 16 pontos).

  • Define dois intervalos de caracteres dentro da cadeia de caracteres (que correspondem às palavras "Primeiro" e "Segundo").

  • Cria um retângulo no qual exibir a cadeia de caracteres.

  • Define a formatação da cadeia de caracteres 3/4, incluindo os dois intervalos de caracteres.

  • Desenha a cadeia de caracteres para a tela.

  • Mede os intervalos de caracteres, determina retângulos que associam os dois intervalos especificados.

  • Desenha os dois retângulos para a tela.

O resultado é a cadeia de caracteres exibida com o primeiro intervalo ("First") limitado por um retângulo vermelho e o segundo intervalo ("Segundo") limitado por um retângulo azul.

C#
private void MeasureCharacterRangesRegions(PaintEventArgs e)
{

    // Set up string.
    string measureString = "First and Second ranges";
    Font stringFont = new Font("Times New Roman", 16.0F);

    // Set character ranges to "First" and "Second".
    CharacterRange[] characterRanges = { new CharacterRange(0, 5), new CharacterRange(10, 6) };

    // Create rectangle for layout.
    float x = 50.0F;
    float y = 50.0F;
    float width = 35.0F;
    float height = 200.0F;
    RectangleF layoutRect = new RectangleF(x, y, width, height);

    // Set string format.
    StringFormat stringFormat = new StringFormat();
    stringFormat.FormatFlags = StringFormatFlags.DirectionVertical;
    stringFormat.SetMeasurableCharacterRanges(characterRanges);

    // Draw string to screen.
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, x, y, stringFormat);

    // Measure two ranges in string.
    Region[] stringRegions = e.Graphics.MeasureCharacterRanges(measureString, 
stringFont, layoutRect, stringFormat);

    // Draw rectangle for first measured range.
    RectangleF measureRect1 = stringRegions[0].GetBounds(e.Graphics);
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), Rectangle.Round(measureRect1));

    // Draw rectangle for second measured range.
    RectangleF measureRect2 = stringRegions[1].GetBounds(e.Graphics);
    e.Graphics.DrawRectangle(new Pen(Color.Blue, 1), Rectangle.Round(measureRect2));
}

Comentários

As regiões retornadas por esse método dependem da resolução, portanto, pode haver uma pequena perda de precisão se as cadeias de caracteres forem registradas em um metafilo em uma resolução e posteriormente reproduzidas em uma resolução diferente.

Confira também

Aplica-se a

.NET 10 (package-provided) e outras versões
Produto Versões
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10