如何为我的矩形设置不透明度(drawingcontext)
how to set opacity for my rectangle(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);
}
}
所以我的问题是如何设置不透明度,这是正确的方法吗?
(这是改变矩形的不透明度)
不要将 Brushes.Red 传递到 Rectangle 中,而是创建一个新的 SolidColorBrush 并设置传递到 Rectangle 中的 SolidColorBrush 的不透明度
SolidColorBrush rectBrush = new SolidColorBrush(Colors.Red);
rectBrush.Opacity = 0.5; // or whatever
dc.DrawRectangle(rectBrush, ...
您需要为 Pen 做类似的事情
简单
drawingVisual.Opacity = 0.5;
这是我的矩形
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);
}
}
所以我的问题是如何设置不透明度,这是正确的方法吗?
(这是改变矩形的不透明度)
不要将 Brushes.Red 传递到 Rectangle 中,而是创建一个新的 SolidColorBrush 并设置传递到 Rectangle 中的 SolidColorBrush 的不透明度
SolidColorBrush rectBrush = new SolidColorBrush(Colors.Red);
rectBrush.Opacity = 0.5; // or whatever
dc.DrawRectangle(rectBrush, ...
您需要为 Pen 做类似的事情
简单
drawingVisual.Opacity = 0.5;