using System; using System.Globalization; using System.Windows; using System.Windows.Data; using System.Windows.Media; namespace SWRIS.Converters { public class ColorStringToHoverBackgroundConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is string colorString && !string.IsNullOrEmpty(colorString)) { try { // 移除#号并确保6位十六进制 string hex = colorString.TrimStart('#'); if (hex.Length == 6) { return $"#1A{hex}"; // 添加透明度 } } catch { return DependencyProperty.UnsetValue; } } return DependencyProperty.UnsetValue; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } public class ColorStringToHoverBorderBrushConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is string colorString && !string.IsNullOrEmpty(colorString)) { try { string hex = colorString.TrimStart('#'); if (hex.Length == 6) { return $"#4D{hex}"; // 添加透明度 } } catch { return DependencyProperty.UnsetValue; } } return DependencyProperty.UnsetValue; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } public class ColorStringToCheckedBackgroundConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is string colorString && !string.IsNullOrEmpty(colorString)) { try { string hex = colorString.TrimStart('#'); if (hex.Length == 6) { return $"#4C{hex}"; // 添加透明度 } } catch { return DependencyProperty.UnsetValue; } } return DependencyProperty.UnsetValue; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }