Files
ShrlAlgoToolkit/Melskin/Assists/ShadingAssist.cs

175 lines
7.3 KiB
C#
Raw Normal View History

2026-01-02 17:30:41 +08:00
namespace Melskin.Assists;
2025-08-20 12:10:13 +08:00
/// <summary>
/// ShadingAssist 类提供了一种方式用于通过依赖属性来设置UI元素的阴影和高亮效果。此类允许开发者为指定的UI元素定义光刷、暗刷、禁用背景色、禁用前景色以及高亮边框颜色。
/// 该类继承自DependencyObject确保了其可以参与到WPF的数据绑定系统中从而动态地改变UI元素的视觉效果。
/// </summary>
public class ShadingAssist
{
#region LightBrush
/// <summary>
/// 获取指定依赖对象的浅阴影效果颜色刷。
/// </summary>
/// <param name="obj">要获取浅阴影颜色刷的依赖对象。</param>
/// <returns>表示浅阴影效果的颜色刷。</returns>
public static SolidColorBrush GetLightShadowBrush(DependencyObject obj)
{
return (SolidColorBrush)obj.GetValue(LightShadowBrushProperty);
}
/// <summary>
/// 为指定的DependencyObject设置表示浅阴影效果的颜色刷。
/// </summary>
/// <param name="obj">要设置浅阴影颜色刷的依赖对象。</param>
/// <param name="value">将要应用到指定对象上的浅阴影SolidColorBrush。</param>
public static void SetLightShadowBrush(DependencyObject obj, SolidColorBrush value)
{
obj.SetValue(LightShadowBrushProperty, value);
}
/// <summary>
/// 用于获取或设置指定UI元素的浅阴影画刷颜色。此依赖属性允许开发者定义一个SolidColorBrush对象来作为UI元素的浅阴影效果从而增强视觉层次感。
/// 默认值为白色Brushes.White
/// </summary>
public static readonly DependencyProperty LightShadowBrushProperty =
DependencyProperty.RegisterAttached("LightShadowBrush",
typeof(SolidColorBrush), typeof(ShadingAssist),
new PropertyMetadata(Brushes.White));
#endregion
#region ShadowBrush
/// <summary>
/// 获取指定依赖对象的深阴影效果颜色刷。
/// </summary>
/// <param name="obj">要获取深阴影颜色刷的依赖对象。</param>
/// <returns>表示深阴影效果的颜色刷。</returns>
public static SolidColorBrush GetDarkShadowBrush(DependencyObject obj)
{
return (SolidColorBrush)obj.GetValue(DarkShadowBrushProperty);
}
/// <summary>
/// 为指定的依赖对象设置深阴影效果颜色刷。
/// </summary>
/// <param name="obj">要为其设置深阴影颜色刷的依赖对象。</param>
/// <param name="value">表示深阴影效果的颜色刷。</param>
public static void SetDarkShadowBrush(DependencyObject obj, SolidColorBrush value)
{
obj.SetValue(DarkShadowBrushProperty, value);
}
/// <summary>
/// 用于获取或设置指定UI元素的深阴影画刷颜色。此依赖属性允许开发者定义一个SolidColorBrush对象来作为UI元素的深阴影效果从而增强视觉层次感。
/// 默认值为黑色Brushes.Black
/// </summary>
public static readonly DependencyProperty DarkShadowBrushProperty =
DependencyProperty.RegisterAttached("DarkShadowBrush",
typeof(SolidColorBrush), typeof(ShadingAssist),
new PropertyMetadata(Brushes.Black));
#endregion
#region DisabledBackground
/// <summary>
/// 获取指定依赖对象的禁用背景色。
/// </summary>
/// <param name="obj">要获取禁用背景色的依赖对象。</param>
/// <returns>表示禁用状态下的背景颜色刷。</returns>
public static Brush GetDisabledBackground(DependencyObject obj)
{
return (Brush)obj.GetValue(DisabledBackgroundProperty);
}
/// <summary>
/// 为指定的依赖对象设置禁用状态下的背景色。
/// </summary>
/// <param name="obj">要设置禁用背景色的依赖对象。</param>
/// <param name="value">新的禁用背景色刷。</param>
public static void SetDisabledBackground(DependencyObject obj, Brush value)
{
obj.SetValue(DisabledBackgroundProperty, value);
}
/// <summary>
/// 用于获取或设置指定UI元素在禁用状态下的背景色。此依赖属性允许开发者定义一个Brush对象来作为UI元素处于不可用状态时的背景颜色有助于用户直观地识别出元素当前不可交互。
/// 默认值为灰色Brushes.Gray
/// </summary>
public static readonly DependencyProperty DisabledBackgroundProperty =
DependencyProperty.RegisterAttached("DisabledBackground",
typeof(Brush), typeof(ShadingAssist),
new PropertyMetadata(Brushes.Gray));
#endregion
#region DisabledForeground
/// <summary>
/// 获取指定依赖对象的禁用状态下的前景色刷。
/// </summary>
/// <param name="obj">要获取禁用前景色刷的依赖对象。</param>
/// <returns>表示禁用状态下前景效果的颜色刷。</returns>
public static Brush GetDisabledForeground(DependencyObject obj)
{
return (Brush)obj.GetValue(DisabledForegroundProperty);
}
/// <summary>
/// 设置指定依赖对象的禁用状态前景色。
/// </summary>
/// <param name="obj">要设置禁用状态前景色的依赖对象。</param>
/// <param name="value">表示禁用状态前景色的画刷。</param>
public static void SetDisabledForeground(DependencyObject obj, Brush value)
{
obj.SetValue(DisabledForegroundProperty, value);
}
/// <summary>
/// 用于获取或设置指定UI元素在禁用状态下的前景色。此依赖属性允许开发者定义一个Brush对象来作为UI元素在不可用状态时的文本或其他前景内容的颜色以区分于正常状态。
/// 默认值为深灰色Brushes.DarkGray
/// </summary>
public static readonly DependencyProperty DisabledForegroundProperty =
DependencyProperty.RegisterAttached("DisabledForeground",
typeof(Brush), typeof(ShadingAssist),
new PropertyMetadata(Brushes.DarkGray));
#endregion
#region LightedBorder
/// <summary>
/// 获取指定依赖对象的高亮边框颜色刷。
/// </summary>
/// <param name="obj">要获取高亮边框颜色刷的依赖对象。</param>
/// <returns>表示高亮边框的颜色刷。</returns>
public static Brush GetLightedBorder(DependencyObject obj)
{
return (Brush)obj.GetValue(LightedBorderProperty);
}
/// <summary>
/// 设置指定依赖对象的光照边框颜色刷。
/// </summary>
/// <param name="obj">要设置光照边框颜色刷的依赖对象。</param>
/// <param name="value">表示光照边框效果的颜色刷。</param>
public static void SetLightedBorder(DependencyObject obj, Brush value)
{
obj.SetValue(LightedBorderProperty, value);
}
/// <summary>
/// 用于获取或设置指定UI元素的高亮边框颜色。此依赖属性允许开发者定义一个Brush对象来作为UI元素的高亮边框效果从而增强视觉层次感。
/// 默认值为白色Brushes.White
/// </summary>
public static readonly DependencyProperty LightedBorderProperty =
DependencyProperty.RegisterAttached("LightedBorder",
typeof(Brush), typeof(ShadingAssist),
new PropertyMetadata(Brushes.White));
#endregion
}