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