Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo StringFormat.SetMeasurableCharacterRanges (CharacterRange[])

 

Specifica una matrice di strutture CharacterRange che rappresenta gli intervalli di caratteri misurati con una chiamata al metodo MeasureCharacterRanges.

Spazio dei nomi:   System.Drawing
Assembly:  System.Drawing (in System.Drawing.dll)

public void SetMeasurableCharacterRanges(
	CharacterRange[] ranges
)

Parametri

ranges
Type: System.Drawing.CharacterRange[]

Matrice di strutture CharacterRange che specifica gli intervalli di caratteri misurati con una chiamata al metodo MeasureCharacterRanges.

Exception Condition
OverflowException

Sono impostati più di 32 intervalli di caratteri.

Setting more than 32 character ranges is not allowed and will cause an T:System.OverflowException.

The following example is designed for use with Windows Forms, and it requires T:System.Windows.Forms.PaintEventArgse, which is a parameter of the E:System.Windows.Forms.Control.Paint event handler. The code performs the following actions:

  • Sets the character ranges of the T:System.Drawing.StringFormat.

  • Measures the character ranges for a given string and layout rectangle.

  • Draws the string and layout rectangle.

  • Paints the regions. Each T:System.Drawing.Region specifies an area that is occupied by a range of characters. The values in the regions are set when the character ranges are measured by the M:System.Drawing.Graphics.MeasureCharacterRanges(System.String,System.Drawing.Font,System.Drawing.RectangleF,System.Drawing.StringFormat) method.

  • Repeats the first four steps, but includes trailing spaces in the measurement of each character range.

  • Clears the format flags of the T:System.Drawing.StringFormat so that trailing spaces are not included in the measurement of each character range.

  • Repeats the first four steps, but uses a different layout rectangle just to demonstrate that the layout rectangle affects the measurements of the character ranges. The size of the font will also affect the measurement.

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

}

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: