91 lines
2.6 KiB
C#
91 lines
2.6 KiB
C#
using System.Globalization;
|
|
using System.Windows.Data;
|
|
|
|
namespace PetWashControl.Converters;
|
|
|
|
public class BoolToStatusConverter : IValueConverter
|
|
{
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
if (value is bool isOpen)
|
|
{
|
|
return isOpen ? "已打开" : "已关闭";
|
|
}
|
|
return "未知";
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
|
|
public class BoolToWashingConverter : IValueConverter
|
|
{
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
if (value is bool isWashing)
|
|
{
|
|
return isWashing ? "清洗中" : "空闲";
|
|
}
|
|
return "未知";
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
|
|
public class BoolToVisibilityConverter : IValueConverter
|
|
{
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
if (value is bool boolValue)
|
|
{
|
|
return boolValue ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed;
|
|
}
|
|
return System.Windows.Visibility.Collapsed;
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
|
|
public class InverseBoolToVisibilityConverter : IValueConverter
|
|
{
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
if (value is bool boolValue)
|
|
{
|
|
return boolValue ? System.Windows.Visibility.Collapsed : System.Windows.Visibility.Visible;
|
|
}
|
|
return System.Windows.Visibility.Visible;
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
|
|
public class ProgressToWidthConverter : IMultiValueConverter
|
|
{
|
|
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
if (values.Length == 2 && values[0] is int progress && values[1] is double containerWidth)
|
|
{
|
|
// 根据进度百分比计算实际宽度
|
|
return containerWidth * progress / 100.0;
|
|
}
|
|
return 0.0;
|
|
}
|
|
|
|
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|