Files
Shrlalgo.RvKits/Melskin/Converters/BooleanToVisibilityConverter.cs
2026-02-17 22:17:13 +08:00

51 lines
2.4 KiB
C#
Raw Permalink 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 System.Windows.Data;
namespace Melskin.Converters;
/// <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)
{
/// <summary>
/// 表示当布尔值为 false 时,转换结果为 Visibility.Collapsed 的实例。适用于在 WPF 中根据布尔条件控制 UI 元素的可见性特别是需要将元素设置为折叠状态Collapsed的情况。
/// </summary>
public static readonly BooleanToVisibilityConverter CollapsedInstance = new()
{
FalseValue = Visibility.Collapsed,
TrueValue = Visibility.Visible
};
/// <summary>
/// 表示当布尔值为 true 时,转换结果为 Visibility.Collapsed 的实例。适用于在 WPF 中根据布尔条件控制 UI 元素的可见性特别是需要将元素在布尔值为真时设置为折叠状态Collapsed的情况。
/// </summary>
public static readonly BooleanToVisibilityConverter InvertCollapsedInstance = new()
{
FalseValue = Visibility.Visible,
TrueValue = Visibility.Collapsed
};
/// <summary>
/// 表示当布尔值为 false 时,转换结果为 Visibility.Hidden 的实例。适用于在 WPF 中根据布尔条件控制 UI 元素的可见性特别是需要将元素设置为隐藏状态Hidden的情况。
/// </summary>
public static readonly BooleanToVisibilityConverter HiddenInstance = new()
{
FalseValue = Visibility.Hidden,
TrueValue = Visibility.Visible
};
/// <summary>
/// 表示当布尔值为 true 时,转换结果为 Visibility.Hidden 的实例。适用于在 WPF 中根据布尔条件控制 UI 元素的可见性特别是需要将元素设置为隐藏状态Hidden的情况。
/// </summary>
public static readonly BooleanToVisibilityConverter InvertHiddenInstance = new()
{
FalseValue = Visibility.Visible,
TrueValue = Visibility.Hidden
};
}