WPFPopupColorEdit 的使用

Posted airforce094

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPFPopupColorEdit 的使用相关的知识,希望对你有一定的参考价值。

一、前言

       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的框架越写越顺手,大多数时间是在挖掘新控件,寻找人机交互的最和谐方式。

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

 

以上是关于WPFPopupColorEdit 的使用的主要内容,如果未能解决你的问题,请参考以下文章

webstorm代码片段的创建

使用 Git 来管理 Xcode 中的代码片段

Android课程---Android Studio使用小技巧:提取方法代码片段

VIM 代码片段插件 ultisnips 使用教程

使用 Pygments 检测代码片段的编程语言

创建自己的代码片段(CodeSnippet)