using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; using System.Windows; namespace Serein.Workbench.Converters { /// /// 根据bool类型控制可见性 /// [ValueConversion(typeof(bool), typeof(Visibility))] public class InvertableBooleanToVisibilityConverter : IValueConverter { enum Parameters { /// /// True为可见,False为不可见 /// Normal, /// /// False为可见,True为不可见 /// Inverted } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var boolValue = (bool)value; var direction = (Parameters)Enum.Parse(typeof(Parameters), (string)parameter); if (direction == Parameters.Inverted) return !boolValue ? Visibility.Visible : Visibility.Collapsed; return boolValue ? Visibility.Visible : Visibility.Collapsed; } public object? ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } } }