using System; using System.Globalization; using System.Windows; using System.Windows.Data; using System.Windows.Media; namespace Ink_Canvas.Converter { public class BooleanToVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if ((bool)value) { return Visibility.Visible; } return Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if ((bool)value) { return Visibility.Visible; } return Visibility.Collapsed; } } public class VisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { Visibility visibility = (Visibility)value; if (visibility == Visibility.Visible) { return Visibility.Collapsed; } return Visibility.Visible; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { Visibility visibility = (Visibility)value; if (visibility == Visibility.Visible) { return Visibility.Collapsed; } return Visibility.Visible; } } public class IntNumberToString : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if ((double)value == 0) { return "无限制"; } return ((double)value) + "人"; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if ((double)value == 0) { return "无限制"; } return ((double)value) + "人"; } } public class IntNumberToString2 : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if ((double)value == 0) { return "自动截图"; } return ((double)value) + "条"; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if ((double)value == 0) { return "自动截图"; } return ((double)value) + "条"; } } public class IsEnabledToOpacityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { bool isChecked = (bool)value; if (isChecked) { return 1d; } return 0.35; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } public class InverseBooleanToVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if ((bool)value) { return Visibility.Collapsed; } return Visibility.Visible; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if ((bool)value) { return Visibility.Collapsed; } return Visibility.Visible; } } public class RippleEffectTranslationConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is double d) { return -d / 2; } return 0.0; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } } public class StringToGeometryConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { try { if (value is string geometryString && !string.IsNullOrEmpty(geometryString)) { return Geometry.Parse(geometryString); } } catch (Exception) { } return null; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }