using System; using System.Globalization; using System.Windows; using System.Windows.Data; using System.Windows.Media; namespace HME_MoistureLossMeter.Converters { public class BoolToVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is bool boolValue) { if (parameter is string param) { // 用于颜色转换 if (param.Contains("Brush") && targetType == typeof(Brush)) { var app = Application.Current; return boolValue ? app.FindResource(param) : app.FindResource("PanelBackgroundBrush"); } // 文本转换 return boolValue ? param : ""; } return boolValue ? Visibility.Visible : Visibility.Collapsed; } return Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if (value is Visibility visibility) return visibility == Visibility.Visible; return false; } } }