Files
ShrlAlgoToolkit/Melskin/Converters/BooleanToVisibilityConverter.cs

51 lines
2.4 KiB
C#
Raw Permalink Normal View History

2025-08-12 23:08:54 +08:00
using System.Windows.Data;
2025-07-31 20:12:24 +08:00
2026-01-02 17:30:41 +08:00
namespace Melskin.Converters;
2025-07-31 20:12:24 +08:00
/// <summary>
/// 布尔值到可见性转换器用于将布尔值转换为WPF中的Visibility枚举值。
/// 该类提供了几种静态实例,可以方便地根据需要选择不同的转换逻辑。
/// </summary>
/// <remarks>
/// 此转换器继承自BooleanConverter 并预设了TrueValue和FalseValue的不同组合
/// 以适应常见的UI需求如基于布尔条件控制元素的显示或隐藏。
/// </remarks>
[ValueConversion(typeof(bool), typeof(Visibility))]
public sealed class BooleanToVisibilityConverter() : BooleanConverter<Visibility>(Visibility.Visible, Visibility.Collapsed)
{
2025-08-20 12:10:13 +08:00
/// <summary>
/// 表示当布尔值为 false 时,转换结果为 Visibility.Collapsed 的实例。适用于在 WPF 中根据布尔条件控制 UI 元素的可见性特别是需要将元素设置为折叠状态Collapsed的情况。
/// </summary>
2025-07-31 20:12:24 +08:00
public static readonly BooleanToVisibilityConverter CollapsedInstance = new()
{
FalseValue = Visibility.Collapsed,
TrueValue = Visibility.Visible
};
2025-08-20 12:10:13 +08:00
/// <summary>
/// 表示当布尔值为 true 时,转换结果为 Visibility.Collapsed 的实例。适用于在 WPF 中根据布尔条件控制 UI 元素的可见性特别是需要将元素在布尔值为真时设置为折叠状态Collapsed的情况。
/// </summary>
2025-07-31 20:12:24 +08:00
public static readonly BooleanToVisibilityConverter InvertCollapsedInstance = new()
{
FalseValue = Visibility.Visible,
TrueValue = Visibility.Collapsed
};
2025-08-20 12:10:13 +08:00
/// <summary>
/// 表示当布尔值为 false 时,转换结果为 Visibility.Hidden 的实例。适用于在 WPF 中根据布尔条件控制 UI 元素的可见性特别是需要将元素设置为隐藏状态Hidden的情况。
/// </summary>
2025-07-31 20:12:24 +08:00
public static readonly BooleanToVisibilityConverter HiddenInstance = new()
{
FalseValue = Visibility.Hidden,
TrueValue = Visibility.Visible
};
2025-08-20 12:10:13 +08:00
/// <summary>
/// 表示当布尔值为 true 时,转换结果为 Visibility.Hidden 的实例。适用于在 WPF 中根据布尔条件控制 UI 元素的可见性特别是需要将元素设置为隐藏状态Hidden的情况。
/// </summary>
2025-07-31 20:12:24 +08:00
public static readonly BooleanToVisibilityConverter InvertHiddenInstance = new()
{
FalseValue = Visibility.Visible,
TrueValue = Visibility.Hidden
};
}