我试图使用SolidColorBrush但得到很多无法转换类型错误如何解决它并使用SolidColorBrush?

时间:2013-12-25 22:23:14

标签: c# winforms

在form1的tope中,我做了:

using System.Windows.Media;

但是在我的代码中,我使用笔刷颜色的所有地方,我必须在它之前添加System.Drawing,例如:

System.Drawing.Pen(System.Drawing.Color.Green, 2f))

如果我不这样做,我会收到错误,例如:

System.Drawing.Pen(Color.Green, 2f))

错误2'颜色'是'System.Drawing.Color'和'System.Windows.Media.Color'之间不明确的引用

所以我在它之前添加System.Drawing并且没有错误。

问题是当我尝试在我的方法中使用SolidColorBrush时,这就是为什么我需要添加Media类:

private void DrawText(string text, System.Drawing.Color pen_color, System.Windows.Media.Color brushes_color, Graphics graphics, int point1, int point2, Point point3)
        {
            SolidColorBrush brush = new SolidColorBrush(brushes_color);
            System.Drawing.Color color = ((System.Windows.Media.Brushes)brush).Color;
            using (System.Drawing.Pen pen = new System.Drawing.Pen(pen_color, 6f))
            {
                Point pt1 = new Point(point1); // 369, 90
                Point pt2 = new Point(point2); // 469, 90
                graphics.DrawLine(pen, pt1, pt2);
            }

            graphics.DrawString(text,
                    this.Font, (System.Drawing.Brushes)brush, point3); // 480, 83
        }

我遇到了一些错误:

在这一行:System.Drawing.Brushes

错误5参数3:无法从'System.Drawing.Brushes'转换为'System.Drawing.Brush'

开:第3点

错误6参数4:无法从'System.Drawing.Point'转换为'System.Drawing.RectangleF'

在这一行:(System.Drawing.Brushes)刷

错误3无法将类型'System.Windows.Media.SolidColorBrush'转换为'System.Drawing.Brushes'

在这一行:System.Drawing.Color color =((System.Windows.Media.Brushes)刷).Color;

错误2无法将类型'System.Windows.Media.SolidColorBrush'转换为'System.Windows.Media.Brushes'

在这部分:graphics.DrawString

错误4'System.Drawing.Graphics.DrawString(string,System.Drawing.Font,System.Drawing.Brush,System.Drawing.RectangleF)'的最佳重载方法匹配有一些无效的参数

属性Color不存在:System.Windows.Media.Color brushes_color

错误1“System.Drawing.Brush”类型中不存在类型名称“Color”

我想做的就是让用户可以在这一行上选择画笔颜色:

graphics.DrawString(text,
                    this.Font, (System.Drawing.Brushes)brush, point3);

在原文中,该行是:

graphics.DrawString(text,
                    this.Font, Brushes.Green , point3);

但是我希望使用它会选择画笔的颜色。

1 个答案:

答案 0 :(得分:3)

  

问题是当我试图在我的方法中使用SolidColorBrush时,这就是为什么我需要添加Media类

你不需要那个。 System.Drawing中的班级称为SolidBrush。删除System.Windows.Media引用。