StringFormat.SetMeasurableCharacterRanges(CharacterRange[]) 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.
Hiermee geeft u een matrix van CharacterRange structuren die de bereiken van tekens vertegenwoordigen die worden gemeten door een aanroep naar de MeasureCharacterRanges(String, Font, RectangleF, StringFormat) methode.
public:
void SetMeasurableCharacterRanges(cli::array <System::Drawing::CharacterRange> ^ ranges);
public void SetMeasurableCharacterRanges(System.Drawing.CharacterRange[] ranges);
member this.SetMeasurableCharacterRanges : System.Drawing.CharacterRange[] -> unit
Public Sub SetMeasurableCharacterRanges (ranges As CharacterRange())
Parameters
- ranges
- CharacterRange[]
Een matrix van CharacterRange structuren die de bereiken aangeeft van tekens die worden gemeten door een aanroep naar de MeasureCharacterRanges(String, Font, RectangleF, StringFormat) methode.
Uitzonderingen
Er worden meer dan 32 tekenbereiken ingesteld.
Voorbeelden
Het volgende voorbeeld 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 de tekenbereiken van de StringFormat.
Meet de tekenbereiken voor een bepaalde tekenreeks en indelingsrechthoek.
Hiermee tekent u de rechthoek voor tekenreeks en indeling.
Schildert de regio's. Elk Region geeft een gebied op dat wordt bezet door een bereik van tekens. De waarden in de regio's worden ingesteld wanneer de tekenbereiken worden gemeten door de MeasureCharacterRanges methode.
Herhaalt de eerste vier stappen, maar bevat volgspaties in de meting van elk tekenbereik.
Hiermee wist u de opmaakvlagmen van de StringFormat markeringen, zodat volgspaties niet zijn opgenomen in de meting van elk tekenbereik.
Herhaalt de eerste vier stappen, maar gebruikt een andere rechthoek met indeling om aan te tonen dat de rechthoek voor de indeling van invloed is op de afmetingen van de tekenbereiken. De grootte van het lettertype heeft ook invloed op de meting.
void SetMeasCharRangesExample( PaintEventArgs^ e )
{
Graphics^ g = e->Graphics;
SolidBrush^ redBrush = gcnew SolidBrush( Color::FromArgb( 50, 255, 0, 0 ) );
// Layout rectangles, font, and string format used for displaying string.
Rectangle layoutRectA = Rectangle(20,20,165,80);
Rectangle layoutRectB = Rectangle(20,110,165,80);
Rectangle layoutRectC = Rectangle(20,200,240,80);
System::Drawing::Font^ tnrFont = gcnew System::Drawing::Font( "Times New Roman",16 );
StringFormat^ strFormat = gcnew StringFormat;
// Ranges of character positions within a string.
array<CharacterRange>^ charRanges = {CharacterRange(3,5),CharacterRange(15,2),CharacterRange(30,15)};
// Each region specifies the area occupied by the characters within a
// range of positions. the values are obtained by using a method that
// measures the character ranges.
array<System::Drawing::Region^>^charRegions = gcnew array<System::Drawing::Region^>(charRanges->Length);
// String to be displayed.
String^ str = "The quick, brown fox easily jumps over the lazy dog.";
// Set the char ranges for the string format.
strFormat->SetMeasurableCharacterRanges( charRanges );
// loop counter (unsigned 8-bit integer)
Byte i;
// Measure the char ranges for a given string and layout rectangle. Each
// area occupied by the characters in a range is stored as a region. Then
// draw the string and layout rectangle, and paint the regions.
charRegions = g->MeasureCharacterRanges( str, tnrFont, layoutRectA, strFormat );
g->DrawString( str, tnrFont, Brushes::Blue, layoutRectA, strFormat );
g->DrawRectangle( Pens::Black, layoutRectA );
// Paint the regions.
for ( i = 0; i < charRegions->Length; i++ )
g->FillRegion( redBrush, charRegions[ i ] );
// Repeat the above steps, but include trailing spaces in the char
// range measurement by setting the appropriate string format flag.
strFormat->FormatFlags = StringFormatFlags::MeasureTrailingSpaces;
charRegions = g->MeasureCharacterRanges( str, tnrFont, layoutRectB, strFormat );
g->DrawString( str, tnrFont, Brushes::Blue, layoutRectB, strFormat );
g->DrawRectangle( Pens::Black, layoutRectB );
for ( i = 0; i < charRegions->Length; i++ )
g->FillRegion( redBrush, charRegions[ i ] );
// Clear all the format flags.
strFormat->FormatFlags = StringFormatFlags(0);
// Repeat the steps, but use a different layout rectangle. the dimensions
// of the layout rectangle and the size of the font both affect the
// character range measurement.
charRegions = g->MeasureCharacterRanges( str, tnrFont, layoutRectC, strFormat );
g->DrawString( str, tnrFont, Brushes::Blue, layoutRectC, strFormat );
g->DrawRectangle( Pens::Black, layoutRectC );
// Paint the regions.
for ( i = 0; i < charRegions->Length; i++ )
g->FillRegion( redBrush, charRegions[ i ] );
}
public void SetMeasCharRangesExample(PaintEventArgs e)
{
Graphics g = e.Graphics;
SolidBrush redBrush = new SolidBrush(Color.FromArgb(50, 255, 0, 0));
// Layout rectangles, font, and string format used for displaying string.
Rectangle layoutRectA = new Rectangle(20, 20, 165, 80);
Rectangle layoutRectB = new Rectangle(20, 110, 165, 80);
Rectangle layoutRectC = new Rectangle(20, 200, 240, 80);
Font tnrFont = new Font("Times New Roman", 16);
StringFormat strFormat = new StringFormat();
// Ranges of character positions within a string.
CharacterRange[] charRanges = { new CharacterRange(3, 5),
new CharacterRange(15, 2), new CharacterRange(30, 15)};
// Each region specifies the area occupied by the characters within a
// range of positions. the values are obtained by using a method that
// measures the character ranges.
Region[] charRegions = new Region[charRanges.Length];
// String to be displayed.
string str =
"The quick, brown fox easily jumps over the lazy dog.";
// Set the char ranges for the string format.
strFormat.SetMeasurableCharacterRanges(charRanges);
// loop counter (unsigned 8-bit integer)
byte i;
// Measure the char ranges for a given string and layout rectangle. Each
// area occupied by the characters in a range is stored as a region. Then
// draw the string and layout rectangle, and paint the regions.
charRegions = g.MeasureCharacterRanges(str, tnrFont,
layoutRectA, strFormat);
g.DrawString(str, tnrFont, Brushes.Blue, layoutRectA, strFormat);
g.DrawRectangle(Pens.Black, layoutRectA);
// Paint the regions.
for (i = 0; i < charRegions.Length; i++)
g.FillRegion(redBrush, charRegions[i]);
// Repeat the above steps, but include trailing spaces in the char
// range measurement by setting the appropriate string format flag.
strFormat.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
charRegions = g.MeasureCharacterRanges(str, tnrFont,
layoutRectB, strFormat);
g.DrawString(str, tnrFont, Brushes.Blue, layoutRectB, strFormat);
g.DrawRectangle(Pens.Black, layoutRectB);
for (i = 0; i < charRegions.Length; i++)
g.FillRegion(redBrush, charRegions[i]);
// Clear all the format flags.
strFormat.FormatFlags = 0;
// Repeat the steps, but use a different layout rectangle. the dimensions
// of the layout rectangle and the size of the font both affect the
// character range measurement.
charRegions = g.MeasureCharacterRanges(str, tnrFont,
layoutRectC, strFormat);
g.DrawString(str, tnrFont, Brushes.Blue, layoutRectC, strFormat);
g.DrawRectangle(Pens.Black, layoutRectC);
// Paint the regions.
for (i = 0; i < charRegions.Length; i++)
g.FillRegion(redBrush, charRegions[i]);
}
Public Sub SetMeasCharRangesExample(ByVal e As PaintEventArgs)
Dim g As Graphics = e.Graphics
Dim redBrush As New SolidBrush(Color.FromArgb(50, 255, 0, 0))
' Layout rectangles, font, and string format used for
' displaying string.
Dim layoutRectA As New Rectangle(20, 20, 165, 80)
Dim layoutRectB As New Rectangle(20, 110, 165, 80)
Dim layoutRectC As New Rectangle(20, 200, 240, 80)
Dim tnrFont As New Font("Times New Roman", 16)
Dim strFormat As New StringFormat
' Ranges of character positions within a string.
Dim charRanges As CharacterRange() = {New CharacterRange(3, 5), _
New CharacterRange(15, 2), New CharacterRange(30, 15)}
' Each region specifies the area occupied by the characters within
' a range of positions. The values are obtained by using a method
' that measures the character ranges.
Dim charRegions(charRanges.Length) As [Region]
' String to be displayed.
Dim str As String = _
"The quick, brown fox easily jumps over the lazy dog."
' Set the char ranges for the string format.
strFormat.SetMeasurableCharacterRanges(charRanges)
' Loop counter (unsigned 8-bit integer).
Dim i As Byte
' Measure the char ranges for a given string and layout rectangle.
' Each area occupied by the characters in a range is stored as a
' region. then draw the string and layout rectangle and paint the
' regions.
charRegions = g.MeasureCharacterRanges(str, tnrFont, _
RectangleF.op_Implicit(layoutRectA), strFormat)
g.DrawString(str, tnrFont, Brushes.Blue, _
RectangleF.op_Implicit(layoutRectA), strFormat)
g.DrawRectangle(Pens.Black, layoutRectA)
' Paint the regions.
For i = 0 To charRegions.Length - 1
g.FillRegion(redBrush, charRegions(i))
Next i
' Repeat the above steps, but include trailing spaces in the char
' range measurement by setting the appropriate string format flag.
strFormat.FormatFlags = StringFormatFlags.MeasureTrailingSpaces
charRegions = g.MeasureCharacterRanges(str, tnrFont, _
RectangleF.op_Implicit(layoutRectB), strFormat)
g.DrawString(str, tnrFont, Brushes.Blue, _
RectangleF.op_Implicit(layoutRectB), strFormat)
g.DrawRectangle(Pens.Black, layoutRectB)
' Paint the regions.
For i = 0 To charRegions.Length - 1
g.FillRegion(redBrush, charRegions(i))
Next i
' Clear all the format flags.
strFormat.FormatFlags = 0
' Repeat the steps, but use a different layout rectangle. The
' dimensions of the layout rectangle and the size of the font both
' affect the character range measurement.
charRegions = g.MeasureCharacterRanges(str, tnrFont, _
RectangleF.op_Implicit(layoutRectC), strFormat)
g.DrawString(str, tnrFont, Brushes.Blue, _
RectangleF.op_Implicit(layoutRectC), strFormat)
g.DrawRectangle(Pens.Black, layoutRectC)
' Paint the regions.
For i = 0 To charRegions.Length - 1
g.FillRegion(redBrush, charRegions(i))
Next i
End Sub
Opmerkingen
Het instellen van meer dan 32 tekenbereiken is niet toegestaan en veroorzaakt een System.OverflowException.