WPF BackgroundColor

时间:2011-12-30 15:21:03

标签: c# wpf colors

我想让我的WPF应用程序的用户有机会更改应用程序的backgroundcolor。为此,他有一个带有一些值的组合框:

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

现在,使用Click-Event,我必须将backgroundcolor置于所选颜色。我试过这样的

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

当然,这不起作用。 我该如何管理?

3 个答案:

答案 0 :(得分:1)

您应该可以使用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;

答案 1 :(得分:0)

你可以尝试一下这个:

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

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

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

答案 2 :(得分:0)

这应该有效

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

this.Background = c;

但您可能需要将第一个字符更改为大写。