Throws an exception if IsReadOnly property is true.
When making a preset for a custom theme, call this method before each of its property setters to ensure the preset is not read-only.
This example displays the members from a custom theme class called SpecialTheme. It demonstrates how to use IsReadOnly and AssertNotReadOnly (drawing code is omitted for clarity).
/// <summary>
/// Initializes a new instance of a <see cref="SpecialTheme"/>.
/// </summary>
public SpecialTheme()
{
}
/// <summary>Private constructor for presets.</summary>
private SpecialTheme(bool readOnly)
{
this.IsReadOnly = readOnly;
}
static SpecialTheme()
{
// create the preset object
_Blue = new SpecialTheme(true);
// assign the field values directly to avoid the set assessor
_Blue.BackColor = Color._DarkBlue;
_Blue.TextColor = Color._LightBlue;
}
/// <summary>
/// Gets the special theme preset which uses blue colors.
/// </summary>
public static SpecialTheme Blue
{
get { return _Blue; }
}
static SpecialTheme _Blue;
/// <summary>
/// Gets or sets the background color of a rebar.
/// </summary>
/// <value>A <see cref="Color"/> structure representing the background color of a rebar.</value>
public Color BackColor
{
get { return _BackColor; }
set { AssertNotReadOnly(); _BackColor = value; }
}
Color _BackColor;
/// <summary>
/// Gets or sets the color of text on a rebar.
/// </summary>
/// <value>A <see cref="Color"/> structure representing the color of text on a rebar.</value>
public Color TextColor
{
get { return _TextColor; }
set { AssertNotReadOnly(); _TextColor = value; }
}
Color _TextColor;
RebarTheme Class | Skybound.Rebar.Rendering Namespace