public override VisualStyleElement GetXPVisualStyle() { VisualStyleElement element = null; ToggleState state = this.ToggleState; if (!Enabled) { element = state == ToggleState.On ? VisualStyleElement.Button.RadioButton.CheckedDisabled : VisualStyleElement.Button.RadioButton.UncheckedDisabled; } else { if (IsMouseDown) { if (IsMouseOver) { element = state == ToggleState.On ? VisualStyleElement.Button.RadioButton.CheckedPressed : VisualStyleElement.Button.RadioButton.UncheckedPressed; } else { element = state == ToggleState.On ? VisualStyleElement.Button.RadioButton.CheckedHot : VisualStyleElement.Button.RadioButton.UncheckedHot; } } else if (IsMouseOver) { element = state == ToggleState.On ? VisualStyleElement.Button.RadioButton.CheckedHot : VisualStyleElement.Button.RadioButton.UncheckedHot; } else { element = state == ToggleState.On ? VisualStyleElement.Button.RadioButton.CheckedNormal : VisualStyleElement.Button.RadioButton.UncheckedNormal; } } return(element); }
/// <summary> /// Gets (or creates and caches) a <see cref="VSR"/> for the given <see cref="VSE"/>. /// </summary> /// <param name="element">The <see cref="VSE"/> to get a renderer for.</param> /// <param name="cache">The cache to get the renderer from.</param> /// <returns>The <see cref="VSR"/>.</returns> public static VSR GetRenderer(this VSE element, VisualStyleRendererCache cache) => cache.GetCachedRenderer(element);
public override VisualStyleElement GetXPVisualStyle() { VisualStyleElement element = null; ToggleState state = this.ToggleState; if (!Enabled) { switch (state) { case ToggleState.Indeterminate: element = VisualStyleElement.Button.CheckBox.MixedDisabled; break; case ToggleState.Off: element = VisualStyleElement.Button.CheckBox.UncheckedDisabled; break; case ToggleState.On: element = VisualStyleElement.Button.CheckBox.CheckedDisabled; break; } } else { if (IsMouseDown) { switch (state) { case ToggleState.Indeterminate: element = IsMouseOver ? VisualStyleElement.Button.CheckBox.MixedPressed : VisualStyleElement.Button.CheckBox.MixedHot; break; case ToggleState.Off: element = IsMouseOver ? VisualStyleElement.Button.CheckBox.UncheckedPressed : VisualStyleElement.Button.CheckBox.UncheckedHot; break; case ToggleState.On: element = IsMouseOver ? VisualStyleElement.Button.CheckBox.CheckedPressed : VisualStyleElement.Button.CheckBox.CheckedHot; break; } } else if (IsMouseOver) { switch (state) { case ToggleState.Indeterminate: element = VisualStyleElement.Button.CheckBox.MixedHot; break; case ToggleState.Off: element = VisualStyleElement.Button.CheckBox.UncheckedHot; break; case ToggleState.On: element = VisualStyleElement.Button.CheckBox.CheckedHot; break; } } else { switch (state) { case ToggleState.Indeterminate: element = VisualStyleElement.Button.CheckBox.MixedNormal; break; case ToggleState.Off: element = VisualStyleElement.Button.CheckBox.UncheckedNormal; break; case ToggleState.On: element = VisualStyleElement.Button.CheckBox.CheckedNormal; break; } } } return(element); }