This class provides an encapsulation of all the information needed to
specify how a text string should be formatted when rendered to a
Graphics surface (e.g., through the
Graphics.DrawString() method). Correspondingly,
the string measurement methods (e.g.,
Graphics.MeasureString()) also require a
StringFormat object.
You can specify basic formatting and alignment features (e.g.,
horizontal Alignment, vertical
LineAlignment, and the
StringFormatFlags familiar to anybody who has
rendered text in GDI/GDI+ before, specifying wrapping and layout
rules). You can also set display parameters such as the method for
dealing with truncated strings (Trimming), whether
to underline HotkeyPrefix, and the Unicode digit
substitution method (see StringDigitSubstitute).
There is also basic control of the tab ruler with
SetTabStops() and GetTabStops(), and the SetMeasurableCharacterRanges() method allows you to package up the text string into a
series of ranges of characters whose individual regions can be
measured. This might be useful if you needed to highlight selected
portions of the text, for example.
In case all this seems a little overwhelming just to render a text
string, there are two static properties,
GenericDefault and
GenericTypographic, that provide
StringFormat objects appropriate for general UI
rendering and formal text display (e.g., in a word processing
control), respectively.
public sealed class StringFormat : MarshalByRefObject : ICloneable, IDisposable {
// Public Constructors
public StringFormat();
public StringFormat(StringFormat format);
public StringFormat(StringFormatFlags options);
public StringFormat(StringFormatFlags options, int language);
// Public Static Properties
public static StringFormat GenericDefault{get; }
public static StringFormat GenericTypographic{get; }
// Public Instance Properties
public StringAlignment Alignment{set; get; }
public int DigitSubstitutionLanguage{get; }
public StringDigitSubstitute DigitSubstitutionMethod{get; }
public StringFormatFlags FormatFlags{set; get; }
public HotkeyPrefix HotkeyPrefix{set; get; }
public StringAlignment LineAlignment{set; get; }
public StringTrimming Trimming{set; get; }
// Public Instance Methods
public object Clone(); // implements ICloneable
public void Dispose(); // implements IDisposable
public float[ ] GetTabStops(out float firstTabOffset);
public void SetDigitSubstitution(int language, StringDigitSubstitute substitute);
public void SetMeasurableCharacterRanges(CharacterRange[ ] ranges);
public void SetTabStops(float firstTabOffset, float[ ] tabStops);
public override string ToString(); // overrides object
// Protected Instance Methods
protected override void Finalize(); // overrides object
}