如何为我的矩形设置不透明度(drawingcontext)

时间:2017-04-19 11:45:55

标签: c# wpf 2d drawingcontext

这是我的矩形

protected void DrawRectangle(DrawingContext dc, Point point)
        {
            DrawingVisual drawingVisual = new DrawingVisual();
            using (DrawingContext drawContext = drawingVisual.RenderOpen())
            {
                Pen drawingPen = new Pen(ErrorBarBrush, ErrorBarThickness);
                dc.DrawRectangle(Brushes.Red,
                    new Pen(Brushes.Black, 5),
                    new Rect(new Point(point.X - 50, point.Y + 50),
                    new Point(point.X + 50, point.Y - 50)));
                dc.PushOpacity(2);

            }
        }

所以我的问题是我如何设置不透明度,这是正确的方法吗?

2 个答案:

答案 0 :(得分:3)

(这是改变矩形的不透明度)

不是将Brushes.Red传递给Rectangle而是创建一个新的SolidColorBrush并设置传递给Rectangle的SolidColorBrush的不透明度

SolidColorBrush rectBrush = new SolidColorBrush(Colors.Red);
rectBrush.Opacity = 0.5; // or whatever

dc.DrawRectangle(rectBrush, ...

你需要为Pen做类似的事情

答案 1 :(得分:1)

简单地

drawingVisual.Opacity = 0.5;