Files
ShrlAlgoToolkit/NeuWPF/NeoUI/Assists/ToggleSwitchAssist.cs

154 lines
6.4 KiB
C#
Raw Normal View History

2025-08-20 12:10:35 +08:00
namespace NeoUI.Assists;
/// <summary>
/// 提供了对开关控件ToggleSwitch的辅助支持包括设置开关状态文本、是否显示文本以及图标等内容。
/// 通过该类可以方便地扩展和自定义开关控件的行为与外观。
/// </summary>
public class ToggleSwitchAssist
{
/// <summary>
/// 获取指定依赖对象的开关处于关闭状态时显示的文本。
/// </summary>
/// <param name="obj">要获取关闭状态文本的依赖对象。</param>
/// <returns>返回一个字符串,表示开关处于关闭状态时显示的文本。</returns>
public static string GetOffText(DependencyObject obj)
{
return (string)obj.GetValue(OffTextProperty);
}
/// <summary>
/// 设置开关控件在关闭状态时显示的文本。
/// </summary>
/// <param name="obj">依赖对象,通常为开关控件实例。</param>
/// <param name="value">要设置的文本值。</param>
public static void SetOffText(DependencyObject obj, string value)
{
obj.SetValue(OffTextProperty, value);
}
/// <summary>
/// 用于获取或设置开关处于关闭状态时显示的文本。
/// 默认值为"关"。此依赖属性支持动画、样式和数据绑定等功能。
/// </summary>
public static readonly DependencyProperty OffTextProperty =
DependencyProperty.RegisterAttached("OffText", typeof(string), typeof(ToggleSwitchAssist), new PropertyMetadata("关"));
/// <summary>
/// 获取指定依赖对象的开关处于开启状态时显示的文本。
/// </summary>
/// <param name="obj">要获取开启状态文本的依赖对象。</param>
/// <returns>返回一个字符串,表示开关处于开启状态时显示的文本。</returns>
public static string GetOnText(DependencyObject obj)
{
return (string)obj.GetValue(OnTextProperty);
}
/// <summary>
/// 设置指定依赖对象的开关处于开启状态时显示的文本。
/// </summary>
/// <param name="obj">要设置开启状态文本的依赖对象。</param>
/// <param name="value">要设置的文本值。</param>
public static void SetOnText(DependencyObject obj, string value)
{
obj.SetValue(OnTextProperty, value);
}
/// <summary>
/// 用于获取或设置开关处于开启状态时显示的文本。
/// 默认值为"开"。此依赖属性支持动画、样式和数据绑定等功能。
/// </summary>
public static readonly DependencyProperty OnTextProperty =
DependencyProperty.RegisterAttached("OnText", typeof(string), typeof(ToggleSwitchAssist), new PropertyMetadata("开"));
/// <summary>
/// 获取指定依赖对象的开关是否显示文本的状态。
/// </summary>
/// <param name="obj">要获取显示文本状态的依赖对象。</param>
/// <returns>返回一个布尔值表示开关是否显示文本。如果为true则显示文本如果为false则不显示文本。</returns>
public static bool GetShowText(DependencyObject obj)
{
return (bool)obj.GetValue(ShowTextProperty);
}
/// <summary>
/// 设置指定依赖对象的开关控件是否显示文本。
/// </summary>
/// <param name="obj">要设置显示文本状态的依赖对象。</param>
/// <param name="value">布尔值表示是否显示文本。如果为true则显示文本如果为false则不显示文本。</param>
public static void SetShowText(DependencyObject obj, bool value)
{
obj.SetValue(ShowTextProperty, value);
}
/// <summary>
/// 用于获取或设置是否显示开关状态文本。
/// 默认值为false。此依赖属性支持动画、样式和数据绑定等功能。
/// </summary>
public static readonly DependencyProperty ShowTextProperty =
DependencyProperty.RegisterAttached("ShowText", typeof(bool), typeof(ToggleSwitchAssist), new PropertyMetadata(false));
/// <summary>
/// 获取指定依赖对象的开关处于关闭状态时的内容。
/// </summary>
/// <param name="obj">要获取关闭状态内容的依赖对象。</param>
/// <returns>返回一个对象,表示开关处于关闭状态时显示的内容。</returns>
public static object GetOffContent(DependencyObject obj)
{
return (object)obj.GetValue(OffContentProperty);
}
/// <summary>
/// 设置指定依赖对象的开关处于关闭状态时显示的内容。
/// </summary>
/// <param name="obj">要设置关闭状态内容的依赖对象。</param>
/// <param name="value">要设置为关闭状态时显示的内容。</param>
public static void SetOffContent(DependencyObject obj, object value)
{
obj.SetValue(OffContentProperty, value);
}
/// <summary>
/// 用于获取或设置开关处于关闭状态时显示的内容。
/// 默认值为null。此依赖属性支持动画、样式和数据绑定等功能。
/// </summary>
public static readonly DependencyProperty OffContentProperty =
DependencyProperty.RegisterAttached("OffContent", typeof(object), typeof(ToggleSwitchAssist), new PropertyMetadata(null));
/// <summary>
/// 获取指定依赖对象的开关处于开启状态时的内容。
/// </summary>
/// <param name="obj">要获取开启状态内容的依赖对象。</param>
/// <returns>返回一个对象,表示开关处于开启状态时的内容。</returns>
public static object GetOnContent(DependencyObject obj)
{
return (object)obj.GetValue(OnContentProperty);
}
/// <summary>
/// 设置指定依赖对象的开关处于开启状态时显示的内容。
/// </summary>
/// <param name="obj">要设置开启状态内容的依赖对象。</param>
/// <param name="value">要设置为开启状态时显示的内容可以是任何类型的对象如字符串或UI元素。</param>
public static void SetOnContent(DependencyObject obj, object value)
{
obj.SetValue(OnContentProperty, value);
}
/// <summary>
/// 用于获取或设置开关处于开启状态时显示的内容。
/// 默认值为null。此依赖属性支持动画、样式和数据绑定等功能。
/// </summary>
public static readonly DependencyProperty OnContentProperty =
DependencyProperty.RegisterAttached("OnContent", typeof(object), typeof(ToggleSwitchAssist), new PropertyMetadata(null));
}