【WPF】PopupColorEdit 的使用

2017-08-12 20:02:23来源:cnblogs.com作者:airforce094人点击

分享

一、前言

       PopupColorEdit 是 dev中一个常用的调色盘控件,它的Color属性返回的是一个System.Windows.Media.Color对象,而不是System.Drawing.Color对象。

二、实例

       一般而言数据库存放的是16进制颜色表示法,那么我们需要把它转换为RGB的格式来支持PopupColorEdit控件

        View:(这里的DataColor还是16进制的,所以我们要写一个Converter)

  <dxe:PopupColorEdit  HorizontalAlignment="Center" VerticalContentAlignment="Center" Width="120"                       AllowNullInput="False"                        VerticalAlignment="Center"                        IsTextEditable="False"                       Color ="{Binding DataColor, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,Converter={x:Static cvt:ColorConverter.Instance}}"/>

      

         Converter :

    public class ColorConverter : IValueConverter    {        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)        {            if (value != null)            {                var drawingColor =  ColorTranslator.FromHtml(value.ToString());                var mediaColor = System.Windows.Media.Color.FromArgb(drawingColor.A, drawingColor.R, drawingColor.G, drawingColor.B);                return mediaColor;            }            return  System.Windows.Media.Color.FromArgb(0,0,0,0);        }        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)        {            if (value != null)            {                var mediacolor = (System.Windows.Media.Color)value;                var drawingcolor = Color.FromArgb(mediacolor.A, mediacolor.R, mediacolor.G, mediacolor.B);                return ColorTranslator.ToHtml(drawingcolor);            }            return "#000000";        }        private static ColorConverter _instance;        public static ColorConverter Instance        {            get            {                if (_instance == null)                {                    _instance = new ColorConverter();                }                return _instance;            }        }    }

         这里的Converter牵涉到了System.Windows.Media.Color 与 System.Drawing.Color的相互转换。

         System.Drawing.Color相当于System.Windows.Media.Color(RGB格式)与16进制颜色表示法的媒介。

三、结语

       发现工作一年多,用户体验-操作界面这块做了很多工作,Dev WPF这套MVVM的框架越写越顺手,大多数时间是在挖掘新控件,寻找人机交互的最和谐方式。

        之后会逐步往业务逻辑,产品授权优化这块儿学习新知识。

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台