Graphics.MeasureCharacterRanges Methode

Definitie

Overloads

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

Hiermee haalt u een matrix van Region objecten op, die elk een bereik van tekenposities binnen de opgegeven tekenreeks begrenst.

MeasureCharacterRanges(String, Font, RectangleF, StringFormat)

Hiermee haalt u een matrix van Region objecten op, die elk een bereik van tekenposities binnen de opgegeven tekenreeks begrenst.

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

Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs

Hiermee haalt u een matrix van Region objecten op, die elk een bereik van tekenposities binnen de opgegeven tekenreeks begrenst.

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()

Parameters

text
ReadOnlySpan<Char>

Tekenreeks die moet worden gemeten.

font
Font

Font die de tekstopmaak van de tekenreeks definieert.

layoutRect
RectangleF

RectangleF structuur waarmee de rechthoek voor de indeling voor de tekenreeks wordt opgegeven.

stringFormat
StringFormat

StringFormat die opmaakgegevens, zoals regelafstand, voor de tekenreeks vertegenwoordigt.

Retouren

Region[]

Deze methode retourneert een matrix met Region objecten, die elk een bereik van tekenposities binnen de opgegeven tekenreeks begrenst.

Van toepassing op

MeasureCharacterRanges(String, Font, RectangleF, StringFormat)

Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs

Hiermee haalt u een matrix van Region objecten op, die elk een bereik van tekenposities binnen de opgegeven tekenreeks begrenst.

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()

Parameters

text
String

Tekenreeks die moet worden gemeten.

font
Font

Font die de tekstopmaak van de tekenreeks definieert.

layoutRect
RectangleF

RectangleF structuur waarmee de rechthoek voor de indeling voor de tekenreeks wordt opgegeven.

stringFormat
StringFormat

StringFormat die opmaakgegevens, zoals regelafstand, voor de tekenreeks vertegenwoordigt.

Retouren

Region[]

Deze methode retourneert een matrix met Region objecten, die elk een bereik van tekenposities binnen de opgegeven tekenreeks begrenst.

Uitzonderingen

font is null.

Voorbeelden

Het volgende codevoorbeeld is ontworpen voor gebruik met Windows Forms en vereist PaintEventArgse, een parameter van de Paint gebeurtenis-handler. De code voert de volgende acties uit:

  • Hiermee stelt u een tekenreeks 'Eerste en Tweede bereiken' en een lettertype voor weergave van de tekenreeks (Times New Roman, 16 point).

  • Hiermee stelt u twee tekenbereiken in de tekenreeks in (die overeenkomen met de woorden 'Eerste' en 'Tweede').

  • Hiermee maakt u een rechthoek waarin de tekenreeks moet worden weergegeven.

  • Hiermee stelt u de opmaak van de tekenreeks 3/4 in, inclusief de twee tekenbereiken.

  • Hiermee tekent u de tekenreeks naar het scherm.

  • Meet de tekenbereiken, bepaalt rechthoeken die de twee opgegeven bereiken hebben gebonden.

  • Hiermee tekent u de twee rechthoeken naar het scherm.

Het resultaat is de weergegeven tekenreeks met het eerste bereik ('Eerste') dat is gebonden door een rode rechthoek en het tweede bereik ('Tweede') dat is gebonden door een blauwe rechthoek.

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

Opmerkingen

De regio's die door deze methode worden geretourneerd, zijn afhankelijk van de resolutie, dus er kan een gering verlies van nauwkeurigheid zijn als tekenreeksen worden vastgelegd in een metabestand met één resolutie en later worden afgespeeld bij een andere resolutie.

Zie ook

Van toepassing op