Graphics.MeasureCharacterRanges Metoda

Definice

Přetížení

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

Získá pole Region objekty, z nichž každý ohraničuje rozsah pozic znaků v zadaném řetězci.

MeasureCharacterRanges(String, Font, RectangleF, StringFormat)

Získá pole Region objekty, z nichž každý ohraničuje rozsah pozic znaků v zadaném řetězci.

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

Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs

Získá pole Region objekty, z nichž každý ohraničuje rozsah pozic znaků v zadaném řetězci.

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

Parametry

text
ReadOnlySpan<Char>

Řetězec k měření.

font
Font

Font, který definuje textový formát řetězce.

layoutRect
RectangleF

RectangleF strukturu, která určuje obdélník rozložení řetězce.

stringFormat
StringFormat

StringFormat, který představuje informace o formátování, například řádkování, pro řetězec.

Návraty

Region[]

Tato metoda vrátí pole Region objektů, z nichž každý ohraničuje rozsah pozic znaků v zadaném řetězci.

Platí pro

.NET 10 (package-provided) a další verze
Produkt Verze
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
Windows Desktop 8, 9, 10

MeasureCharacterRanges(String, Font, RectangleF, StringFormat)

Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs

Získá pole Region objekty, z nichž každý ohraničuje rozsah pozic znaků v zadaném řetězci.

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

Parametry

text
String

Řetězec k měření.

font
Font

Font, který definuje textový formát řetězce.

layoutRect
RectangleF

RectangleF strukturu, která určuje obdélník rozložení řetězce.

stringFormat
StringFormat

StringFormat, který představuje informace o formátování, například řádkování, pro řetězec.

Návraty

Region[]

Tato metoda vrátí pole Region objektů, z nichž každý ohraničuje rozsah pozic znaků v zadaném řetězci.

Výjimky

font je null.

Příklady

Následující příklad kódu je určený pro použití s Windows Forms a vyžaduje PaintEventArgse, což je parametr obslužné rutiny události Paint. Kód provede následující akce:

  • Nastaví řetězec "První a druhý rozsah" a písmo pro zobrazení řetězce ("Times New Roman", 16 bodů).

  • Nastaví dvě rozsahy znaků v řetězci (které odpovídají slovům "První" a "Druhý").

  • Vytvoří obdélník, ve kterém se má řetězec zobrazit.

  • Nastaví formátování řetězce 3/4 včetně dvou oblastí znaků.

  • Nakreslí řetězec na obrazovku.

  • Měří rozsahy znaků a určuje obdélníky, které ohraničují dvě zadané oblasti.

  • Nakreslí dva obdélníky na obrazovku.

Výsledkem je zobrazený řetězec s první oblastí ("První") ohraničenou červeným obdélníkem a druhou oblastí ("Druhý") ohraničenou modrým obdélníkem.

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));
}

Poznámky

Oblasti vrácené touto metodou jsou závislé na rozlišení, takže může dojít k mírné ztrátě přesnosti, pokud jsou řetězce zaznamenány v metasouboru v jednom rozlišení a později se přehrávají v jiném rozlišení.

Viz také

Platí pro

.NET 10 (package-provided) a další verze
Produkt Verze
.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