【发布时间】:2015-11-17 15:52:00
【问题描述】:
我正在尝试创建具有透明度的 DrawingBrush,但无法弄清楚如何设置此透明度:( 这是 XAML:
<Border Grid.Column="1" Grid.Row="1" BorderBrush="Yellow" Background="Green">
<Rectangle>
<Rectangle.Fill>
<DrawingBrush>
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="Red">
<GeometryDrawing.Geometry>
<CombinedGeometry GeometryCombineMode="Exclude">
<CombinedGeometry.Geometry1>
<RectangleGeometry Rect="0, 0, 110, 110" />
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<RectangleGeometry Rect="10, 10, 90, 90" />
</CombinedGeometry.Geometry2>
</CombinedGeometry>
</GeometryDrawing.Geometry>
<GeometryDrawing.Pen>
<Pen Brush="Blue" Thickness=".3" />
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Rectangle.Fill>
</Rectangle>
</Border>
输出是:
<GeometryDrawing Brush="Red"><Border Background="Green">
如何将画笔的背景颜色设置为 Transparent ?
如果我在 XAML (GeometryDrawing Brush="Transparent") 中设置它,那么画笔将从上层控件 Border 获取背景颜色,并且一切都将是绿色
主要思路是在control/Brush的中间中绘制Rectangle
【问题讨论】:
-
我有点困惑你期望的最终结果是什么。你想让绿色部分完全透明吗?
-
@vcsjones
Red部分 -
您将一个带有(部分)透明填充的矩形放入具有绿色背景的边框中。当然,您会通过透明部分看到绿色背景。你的期望是什么?你想达到什么目的?
-
@Clemens - 我正在尝试在控件中间绘制带有颜色的
Rectangle。从Rectangle到外边框(红色)的空间应该是透明的。 -
@Clemens 我不明白这个问题....我需要设置
Rectangle的颜色 - 如何?我设置了Border的Background画笔 - 这个DrawingBrush仅在内部Rectangle中绘制它,并将所有“红色”区域设置为透明。这就是想法