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的時候)

 

這里我們着重說一下第三種,value獲取的值是:System.Windows.Media.Color 顏色名 (比如System.Windows.Media.Color Blue)。所以我們需要截取出后面的名字,然后使用(Color)ColorConverter.ConvertFromString(selectcolor) 轉換為顏色格式。注意,不能使用ColorConverter.ConvertFromString(selectcolor) as Color;提示錯誤Color必須為非Null值。 

SolidColorBrush myBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(0xFF, 0x25, 0x56, 0x87));  

button.Background = (System.Windows.Media.Brush)myBrush;  

轉自:http://blog.csdn.net/xingxing513234072/article/details/9016289


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM