zoukankan      html  css  js  c++  java
  • wpf后台设置颜色(背景色,前景色)

    有时候你是不是也会遇到要在wpf后台给某个控件设置背景色或者给文字设置前景色的情况?

    本人最近看到一个从自定义的combobox读取系统字体和颜色的实例,该实例实现了随字体combobox选项改变而改变字体的设置,而颜色combobox却没有实现,于是自己也想设置一下。结果发现颜色从前台好像不好设置成动态的,于是尝试从后台combobox_SelectionChanged事件设置。

    要设置颜色,首先要获取颜色。获取颜色的方式我总结了四种:

    1、 Color color = Color.FromArgb(透明度, red数字, green数字, blue数字); //这四个数字范围都是(0-255)

      Color color = Color.FromRgb(red数字, green数字, blue数字);//默认透明度为255;

    2、Color color = (Color)ColorConverter.ConvertFromString(“Blue”);

    3、 if (e.Source is ComboBox)
          {        

          var value = (e.Source as ComboBox).SelectedValue;                   
                    int start = value.ToString().IndexOf("Color");
                    string selectcolor = value.ToString().Substring(start+5);
                    Color color = (Color)ColorConverter.ConvertFromString(selectcolor);    

           textblock.Foreground = new SolidColorBrush(color); 

           }

    4、TBlock_content.Foreground = Brushes.Blue; (对于有Brushes的时候)

    5、 tblock_gethistory.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2786E4"));

    这里我们着重说一下第三种,value获取的值是:System.Windows.Media.Color 颜色名 (比如System.Windows.Media.Color Blue)。所以我们需要截取出后面的名字,然后使用(Color)ColorConverter.ConvertFromString(selectcolor) 转换为颜色格式。注意,不能使用ColorConverter.ConvertFromString(selectcolor) as Color;提示错误Color必须为非Null值。     

      

    个人小站欢迎来踩:驾校教练评价平台 | 为爱豆砌照片墙

      

  • 相关阅读:
    Ubuntu 12.04 安装scribe 的笔记 | 动漫驿站
    boost install on prinse 12.04 ubuntu
    basic coder » linux下获取当前程序的绝对路径
    spring 使用 groovy 的 utf8 问题
    string转化大小写(C++) | Vimer的程序世界
    linux常用命令一
    STL map与Boost unordered_map 有何不可的日志 网易博客
    本博使用的vim(gvim)相关插件整理
    【转】C++11中值得关注的几大变化 奔向C++ C++博客
    Lua 语言和C/C++集成调研小结
  • 原文地址:https://www.cnblogs.com/jying/p/2852714.html
Copyright © 2011-2022 走看看