Graphics.MeasureCharacterRanges Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.
- 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
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.
- 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
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.