Graphics.MeasureCharacterRanges Método

Definição

Sobrecargas

Name Descrição
MeasureCharacterRanges(ReadOnlySpan<Char>, Font, RectangleF, StringFormat)

Obtém um array de Region objetos, cada um dos quais limita um intervalo de posições de caracteres dentro da cadeia especificada.

MeasureCharacterRanges(String, Font, RectangleF, StringFormat)

Obtém um array de Region objetos, cada um dos quais limita um intervalo de posições de caracteres dentro da cadeia especificada.

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

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

Obtém um array de Region objetos, cada um dos quais limita um intervalo de posições de caracteres dentro da cadeia especificada.

public:
 cli::array <System::Drawing::Region ^> ^ MeasureCharacterRanges(ReadOnlySpan<char> text, System::Drawing::Font ^ font, System::Drawing::RectangleF layoutRect, System::Drawing::StringFormat ^ stringFormat);
public System.Drawing.Region[] MeasureCharacterRanges(ReadOnlySpan<char> text, System.Drawing.Font font, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat? stringFormat);
member this.MeasureCharacterRanges : ReadOnlySpan<char> * System.Drawing.Font * System.Drawing.RectangleF * System.Drawing.StringFormat -> System.Drawing.Region[]
Public Function MeasureCharacterRanges (text As ReadOnlySpan(Of Char), font As Font, layoutRect As RectangleF, stringFormat As StringFormat) As Region()

Parâmetros

text
ReadOnlySpan<Char>

Fio para medir.

font
Font

Font que define o formato de texto da cadeia.

layoutRect
RectangleF

RectangleF estrutura que especifica o retângulo de disposição para a corda.

stringFormat
StringFormat

StringFormat que representa informação de formatação, como o espaçamento das linhas, para a cadeia.

Devoluções

Region[]

Este método devolve um array de Region objetos, cada um dos quais limita um intervalo de posições de caracteres dentro da cadeia especificada.

Aplica-se a

MeasureCharacterRanges(String, Font, RectangleF, StringFormat)

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

Obtém um array de Region objetos, cada um dos quais limita um intervalo de posições de caracteres dentro da cadeia especificada.

public:
 cli::array <System::Drawing::Region ^> ^ MeasureCharacterRanges(System::String ^ text, System::Drawing::Font ^ font, System::Drawing::RectangleF layoutRect, System::Drawing::StringFormat ^ stringFormat);
public System.Drawing.Region[] MeasureCharacterRanges(string? text, System.Drawing.Font font, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat? stringFormat);
public System.Drawing.Region[] MeasureCharacterRanges(string text, System.Drawing.Font font, System.Drawing.RectangleF layoutRect, System.Drawing.StringFormat stringFormat);
member this.MeasureCharacterRanges : string * System.Drawing.Font * System.Drawing.RectangleF * System.Drawing.StringFormat -> System.Drawing.Region[]
Public Function MeasureCharacterRanges (text As String, font As Font, layoutRect As RectangleF, stringFormat As StringFormat) As Region()

Parâmetros

text
String

Fio para medir.

font
Font

Font que define o formato de texto da cadeia.

layoutRect
RectangleF

RectangleF estrutura que especifica o retângulo de disposição para a corda.

stringFormat
StringFormat

StringFormat que representa informação de formatação, como o espaçamento das linhas, para a cadeia.

Devoluções

Region[]

Este método devolve um array de Region objetos, cada um dos quais limita um intervalo de posições de caracteres dentro da cadeia especificada.

Exceções

font é null.

Exemplos

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

  • Define uma sequência "Primeira e Segunda faixa" e uma fonte para mostrar a sequência ("Times New Roman", 16 pontos).

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

  • Cria um retângulo onde exibir a cadeia.

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

  • Puxa o fio até ao ecrã.

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

  • Desenha os dois retângulos para o ecrã.

O resultado é a sequência apresentada, com o primeiro intervalo ("Primeira") delimitado por um retângulo vermelho e o segundo intervalo ("Segundo") delimitado por um retângulo azul.

public:
   void MeasureCharacterRangesRegions( PaintEventArgs^ e )
   {
      // Set up string.
      String^ measureString = "First and Second ranges";
      System::Drawing::Font^ stringFont = gcnew System::Drawing::Font( "Times New Roman",16.0F );

      // Set character ranges to "First" and "Second".
      array<CharacterRange>^ characterRanges = {CharacterRange(0,5),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 = RectangleF(x,y,width,height);

      // Set string format.
      StringFormat^ stringFormat = gcnew 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.
      array<System::Drawing::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( gcnew Pen( Color::Red,1.0f ), Rectangle::Round( measureRect1 ) );

      // Draw rectangle for second measured range.
      RectangleF measureRect2 = stringRegions[ 1 ]->GetBounds( e->Graphics );
      e->Graphics->DrawRectangle( gcnew Pen( Color::Blue,1.0f ), Rectangle::Round( measureRect2 ) );
   }
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));
}
Private Sub MeasureCharacterRangesRegions(ByVal e As PaintEventArgs)

    ' Set up string.
    Dim measureString As String = "First and Second ranges"
    Dim stringFont As New Font("Times New Roman", 16.0F)

    ' Set character ranges to "First" and "Second".
    Dim characterRanges As CharacterRange() = _
    {New CharacterRange(0, 5), New CharacterRange(10, 6)}

    ' Create rectangle for layout.
    Dim x As Single = 50.0F
    Dim y As Single = 50.0F
    Dim width As Single = 35.0F
    Dim height As Single = 200.0F
    Dim layoutRect As New RectangleF(x, y, width, height)

    ' Set string format.
    Dim stringFormat As 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.
    Dim stringRegions() As [Region] = e.Graphics.MeasureCharacterRanges(measureString, _
stringFont, layoutRect, stringFormat)

    ' Draw rectangle for first measured range.
    Dim measureRect1 As RectangleF = _
    stringRegions(0).GetBounds(e.Graphics)
    e.Graphics.DrawRectangle(New Pen(Color.Red, 1), _
    Rectangle.Round(measureRect1))

    ' Draw rectangle for second measured range.
    Dim measureRect2 As RectangleF = _
    stringRegions(1).GetBounds(e.Graphics)
    e.Graphics.DrawRectangle(New Pen(Color.Blue, 1), _
    Rectangle.Round(measureRect2))
End Sub

Observações

As regiões devolvidas por este método dependem da resolução, pelo que pode haver uma ligeira perda de precisão se as cordas forem gravadas num metaficheiro a uma resolução e depois reproduzidas a uma resolução diferente.

Ver também

Aplica-se a