WPF BackgroundColor - PullRequest
       1

WPF BackgroundColor

0 голосов
/ 30 декабря 2011

Я хочу дать пользователю моего WPF-приложения возможность изменить цвет фона приложения. Для этого у него есть выпадающий список с некоторыми значениями:

        cbSetBackground.Items.Add("green");
        cbSetBackground.Items.Add("red");
        cbSetBackground.Items.Add("blue");
        cbSetBackground.Items.Add("yellow");

Теперь, с Click-Event, я должен поместить цвет фона в выбранный цвет. Я попробовал это так

this.Background = Brushes. + cbSetBackground.SelectedItem.ToString();

Конечно, это не работает. Как я могу справиться с этим?

Ответы [ 3 ]

1 голос
/ 30 декабря 2011

Вы должны быть в состоянии использовать BrushConverter (http://msdn.microsoft.com/en-us/library/system.windows.media.brushconverter.aspx).

BrushConverter conv = new BrushConverter();
SolidColorBrush brush = conv.ConvertFromString(cbSetBackground.SelectedItem.ToString()) as SolidColorBrush;
this.Background = brush;
0 голосов
/ 30 декабря 2011

Это должно работать

string colorStr = cbSetBackground.SelectedItem.ToString();
Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString(colorStr);

this.Background = c;

Но вам может потребоваться изменить первый символ на верхний регистр.

0 голосов
/ 30 декабря 2011

Вы можете попробовать это:

BrushConverter bc = new BrushConverter();  
this.Background=  (Brush)bc.ConvertFrom(cbSetBackground.SelectedItem.ToString());

OR

BrushConverter bc = new BrushConverter();  
this.Background=  (Brush)bc.ConvertFromString(cbSetBackground.SelectedItem.ToString());

OR

Brush myBrush = new SolidBrush(Color.FromName(cbSetBackground.SelectedItem.ToString()));
this.Background=myBrush;

Проверьте BrushConverter класс здесь http://msdn.microsoft.com/en-us/library/system.windows.media.brushconverter.convertfromstring.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...