【问题标题】:Use System.Drawing.Color to set background and foreground in WPF使用 System.Drawing.Color 在 WPF 中设置背景和前景
【发布时间】:2014-01-30 23:02:23
【问题描述】:

如何以编程方式使用 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。

【问题讨论】:

    标签: c# .net wpf silverlight xaml


    【解决方案1】:

    您需要使用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));
    

    【讨论】:

    • 哦,是的。我认为指定 System.Drawing.Color 而不是 System.Windows.Media.Color 就足够了。无论如何抱歉混淆。赞成你的答案。无法将两个答案标记为已回答。不过你确实回答了。
    【解决方案2】:

    你可以这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      • 2014-08-28
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多