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
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|