使用System.Drawing.Color在WPF中设置背景和前景

时间:2014-01-30 23:02:24

标签: c# .net wpf silverlight xaml

如何以编程方式使用System.Drawing.Color设置WPF文本块的背景和前景属性?没有转换器的解决方案会很好。

System.Drawing.Color BackColor = System.Drawing.Color.Black;
System.Drawing.Color ForeColor = System.Drawing.Color.White;

TextBlock txt = new TextBlock ();
txt.Background=BackColor ;
txt.ForeGround=ForeColor ;
  

PS:我将指定的颜色来自Windows窗体应用程序   因此它将是一个System.Drawing.Color而不是   WPF要求的System.Windows.Media.Color。

2 个答案:

答案 0 :(得分:4)

您需要使用Brush而不是Color

有几个预定义的画笔,所以你可以这样做:

txt.Background = Brushes.Black;
txt.Foreground = Brushes.White;

MSDN Page

但是,当您从Windows窗体应用程序中读取颜色时,您必须从组件颜色创建Brush

txt.Background = new SolidColorBrush(Color.FromArgb(BackColor.A, BackColor.R, BackColor.G, BackColor.B));

答案 1 :(得分:1)

你可以这样做:

System.Drawing.Color BackColor = System.Drawing.Color.Black;

txt.Background = new SolidColorBrush(
    Color.FromArgb(BackColor.A, BackColor.R, BackColor.G, BackColor.B));