提交 bb693478 编写于 作者: 闫驚鏵

Update ColorConverter.cs

上级 c81fff3a
...@@ -9,52 +9,55 @@ namespace WPFDevelopers.Converts ...@@ -9,52 +9,55 @@ namespace WPFDevelopers.Converts
{ {
public class ColorToRedConverter : IValueConverter public class ColorToRedConverter : IValueConverter
{ {
private Color? _curColor = null; private Color? _curColor;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
_curColor = (Color)value; _curColor = (Color) value;
return _curColor.Value.R; return _curColor.Value.R;
} }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ {
return Color.FromArgb(_curColor.Value.A, (byte)(double.Parse(value.ToString())), _curColor.Value.G, _curColor.Value.B); return Color.FromArgb(_curColor.Value.A, (byte) double.Parse(value.ToString()), _curColor.Value.G,
_curColor.Value.B);
} }
} }
public class ColorToGreenConverter : IValueConverter public class ColorToGreenConverter : IValueConverter
{ {
private Color? _curColor = null; private Color? _curColor;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
_curColor = (Color)value; _curColor = (Color) value;
return _curColor.Value.G; return _curColor.Value.G;
} }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ {
return Color.FromArgb(_curColor.Value.A, _curColor.Value.R, (byte)(double.Parse(value.ToString())), _curColor.Value.B); return Color.FromArgb(_curColor.Value.A, _curColor.Value.R, (byte) double.Parse(value.ToString()),
_curColor.Value.B);
} }
} }
public class ColorToBlueConverter : IValueConverter public class ColorToBlueConverter : IValueConverter
{ {
private Color? _curColor = null; private Color? _curColor;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
_curColor = (Color)value; _curColor = (Color) value;
return _curColor.Value.B; return _curColor.Value.B;
} }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ {
return Color.FromArgb(_curColor.Value.A, _curColor.Value.R, _curColor.Value.G, (byte)(double.Parse(value.ToString()))); return Color.FromArgb(_curColor.Value.A, _curColor.Value.R, _curColor.Value.G,
(byte) double.Parse(value.ToString()));
} }
} }
...@@ -62,7 +65,7 @@ namespace WPFDevelopers.Converts ...@@ -62,7 +65,7 @@ namespace WPFDevelopers.Converts
{ {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
return new SolidColorBrush((Color)value); return new SolidColorBrush((Color) value);
} }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
...@@ -73,79 +76,86 @@ namespace WPFDevelopers.Converts ...@@ -73,79 +76,86 @@ namespace WPFDevelopers.Converts
public class ColorToStringConverter : IValueConverter public class ColorToStringConverter : IValueConverter
{ {
private Color? _curColor = null; private Color? _curColor;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
_curColor = (Color)value; _curColor = (Color) value;
return _curColor.ToString(); return _curColor.ToString();
} }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ {
var colorStr = (string)value; var colorStr = (string) value;
if (!string.IsNullOrWhiteSpace(colorStr) && Regex.IsMatch(colorStr, @"^#[\da-fA-F]{6,8}$")) if (!string.IsNullOrWhiteSpace(colorStr) && Regex.IsMatch(colorStr, @"^#[\da-fA-F]{6,8}$"))
return ColorConverter.ConvertFromString(colorStr); return ColorConverter.ConvertFromString(colorStr);
return _curColor.Value; return _curColor.Value;
} }
} }
public class HToColorConverter : IValueConverter public class HToColorConverter : IValueConverter
{ {
private Color? _curColor = null; private Color? _curColor;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
_curColor = (Color)value; _curColor = (Color) value;
return $"{ColorUtil.ColorFromH(_curColor.Value)}"; return $"{(int) ColorUtil.RgbToHSL(_curColor.Value).H}";
//return $"{ColorUtil.ColorFromH(_curColor.Value)}";
} }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ {
var colorStr = (string)value; var colorStr = (string) value;
if (!string.IsNullOrWhiteSpace(colorStr) && double.TryParse(colorStr, out double hValue)) if (!string.IsNullOrWhiteSpace(colorStr) && double.TryParse(colorStr, out var hValue))
_curColor = ColorUtil.ConvertHSLToColor(_curColor.Value, hValue: hValue % 360); _curColor = ColorUtil.ConvertHSLToColor(_curColor.Value, hValue % 360);
//_curColor = ColorUtil.ConvertHSLToColor(_curColor.Value, hValue: hValue % 360);
return _curColor; return _curColor;
} }
} }
public class SToColorConverter : IValueConverter public class SToColorConverter : IValueConverter
{ {
private Color? _curColor = null; private Color? _curColor;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
_curColor = (Color)value; _curColor = (Color) value;
return $"{ColorUtil.ColorFromS(_curColor.Value)}%"; return $"{Math.Round(ColorUtil.RgbToHSL(_curColor.Value).S * 100)}%";
//return $"{ColorUtil.ColorFromS(_curColor.Value)}%";
} }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ {
var colorStr = (string)value; var colorStr = (string) value;
if (!string.IsNullOrWhiteSpace(colorStr) && double.TryParse(colorStr, out double sValue)) if (!string.IsNullOrWhiteSpace(colorStr) && double.TryParse(colorStr, out var sValue))
_curColor = ColorUtil.ConvertHSLToColor(_curColor.Value, sValue: sValue / 100); _curColor = ColorUtil.ConvertHSLToColor(_curColor.Value, sl: sValue / 100);
//_curColor = ColorUtil.ConvertHSLToColor(_curColor.Value, sValue: sValue / 100);
return _curColor; return _curColor;
} }
} }
public class LToColorConverter : IValueConverter public class LToColorConverter : IValueConverter
{ {
private Color? _curColor = null; private Color? _curColor;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
_curColor = (Color)value; _curColor = (Color) value;
return $"{ColorUtil.ColorFromL(_curColor.Value)}%"; //return $"{ColorUtil.ColorFromL(_curColor.Value)}%";
return $"{Math.Round(ColorUtil.RgbToHSL(_curColor.Value).L * 100)}%";
} }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ {
var colorStr = (string)value; var colorStr = (string) value;
if (!string.IsNullOrWhiteSpace(colorStr) && double.TryParse(colorStr, out double lValue)) if (!string.IsNullOrWhiteSpace(colorStr) && double.TryParse(colorStr, out var lValue))
_curColor = ColorUtil.ConvertHSLToColor(_curColor.Value, lValue: lValue / 100); _curColor = ColorUtil.ConvertHSLToColor(_curColor.Value, l: lValue / 100);
//_curColor = ColorUtil.ConvertHSLToColor(_curColor.Value, lValue: lValue / 100);
return _curColor; return _curColor;
} }
} }
}
} \ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册