Files
ShrlAlgoToolkit/NeuWPF/NeoUI/Assists/ButtonAssist.cs
ShrlAlgo 955a01f564 整理
2025-08-20 12:10:35 +08:00

119 lines
5.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using NeoUI.Assets;
using NeoUI.Controls;
namespace NeoUI.Assists;
/// <summary>
/// ButtonAssist 类提供了对按钮控件外观类型的辅助功能。
/// 通过此辅助类可以方便地获取或设置按钮的AppearanceType属性
/// 从而控制按钮的视觉样式。支持的样式包括Primary、Info、Success、Warning和Error。
/// </summary>
public class ButtonAssist
{
/// <summary>
/// 获取指定对象的外观类型。
/// </summary>
/// <param name="obj">要获取其外观类型的依赖对象。</param>
/// <returns>返回指定对象的AppearanceType枚举值表示其外观类型。</returns>
public static AppearanceType GetAppearanceType(DependencyObject obj)
{
return (AppearanceType)obj.GetValue(AppearanceTypeProperty);
}
/// <summary>
/// 设置指定对象的外观类型。
/// </summary>
/// <param name="obj">要设置其外观类型的依赖对象。</param>
/// <param name="value">AppearanceType枚举值表示要设置的外观类型。</param>
public static void SetAppearanceType(DependencyObject obj, AppearanceType value)
{
obj.SetValue(AppearanceTypeProperty, value);
}
/// <summary>
/// 代表按钮控件的外观类型依赖属性。通过此属性,可以设置或获取按钮的视觉样式。
/// 支持的样式包括Primary、Info、Success、Warning和Error分别对应不同的视觉效果。
/// </summary>
public static readonly DependencyProperty AppearanceTypeProperty =
DependencyProperty.RegisterAttached("AppearanceType", typeof(AppearanceType), typeof(ButtonAssist), new PropertyMetadata(AppearanceType.None));
/// <summary>
/// 获取指定对象的图标。
/// </summary>
/// <param name="obj">要获取其图标的依赖对象。</param>
/// <returns>返回指定对象的MaterialSymbol枚举值表示其图标。</returns>
public static MaterialSymbol GetIcon(DependencyObject obj)
{
return (MaterialSymbol)obj.GetValue(IconProperty);
}
/// <summary>
/// 为指定对象设置图标。
/// </summary>
/// <param name="obj">要为其设置图标的依赖对象。</param>
/// <param name="value">要设置的MaterialSymbol图标值。</param>
public static void SetIcon(DependencyObject obj, MaterialSymbol value)
{
obj.SetValue(IconProperty, value);
}
/// <summary>
/// 代表按钮控件的图标依赖属性。通过此属性,可以设置或获取按钮上显示的图标。
/// 支持使用MaterialSymbol枚举中的值来指定具体的图标样式。
/// </summary>
public static readonly DependencyProperty IconProperty =
DependencyProperty.RegisterAttached("Icon", typeof(MaterialSymbol), typeof(ButtonAssist), new PropertyMetadata(MaterialSymbol.Cr));
/// <summary>
/// 获取指定对象的图标放置位置。
/// </summary>
/// <param name="obj">要获取其图标放置位置的依赖对象。</param>
/// <returns>返回指定对象的Dock枚举值表示图标的放置位置。</returns>
public static Dock GetIconPlacement(DependencyObject obj)
{
return (Dock)obj.GetValue(IconPlacementProperty);
}
/// <summary>
/// 设置指定对象的图标放置位置。
/// </summary>
/// <param name="obj">要设置其图标放置位置的依赖对象。</param>
/// <param name="value">图标放置位置的值使用Dock枚举表示。</param>
public static void SetIconPlacement(DependencyObject obj, Dock value)
{
obj.SetValue(IconPlacementProperty, value);
}
/// <summary>
/// 代表按钮控件的图标位置依赖属性。通过此属性,可以设置或获取按钮上图标的放置位置。
/// 支持使用Dock枚举中的值来指定图标相对于按钮文本的位置例如左对齐、右对齐等。
/// </summary>
public static readonly DependencyProperty IconPlacementProperty =
DependencyProperty.RegisterAttached("IconPlacement", typeof(Dock), typeof(ButtonAssist), new PropertyMetadata(Dock.Left));
/// <summary>
/// 代表按钮控件是否正在运行的依赖属性。通过此属性,可以设置或获取按钮的运行状态。
/// 此属性通常用于指示按钮关联的操作是否正在进行中,例如数据加载或处理过程。
/// </summary>
public static readonly DependencyProperty IsRunningProperty =
DependencyProperty.RegisterAttached("IsRunning", typeof(bool), typeof(ButtonAssist), new PropertyMetadata(false));
/// <summary>
/// 获取指定对象的IsRunning状态。
/// </summary>
/// <param name="obj">要获取其IsRunning状态的依赖对象。</param>
/// <returns>返回一个布尔值,表示指定对象是否正在运行。</returns>
public static bool GetIsRunning(DependencyObject obj) => (bool)obj.GetValue(IsRunningProperty);
/// <summary>
/// 设置指定对象的运行状态。
/// </summary>
/// <param name="obj">要设置其运行状态的依赖对象。</param>
/// <param name="value">布尔值,表示对象是否处于运行状态。</param>
public static void SetIsRunning(DependencyObject obj, bool value) => obj.SetValue(IsRunningProperty, value);
}