几何DrawingImage的VisualBrush模糊并且被切断

时间:2018-11-20 12:04:15

标签: wpf xaml vector-graphics

我想在VisualBrush中绘制圆形几何体(以创建OpacityMask),但是结果的质量很低:

enter image description here
该图像放大了500%,但圆环的切口很明显(尤其是在顶部和底部),即使在原始尺寸下,蒙版也相当模糊。图片是使用以下代码生成的:

<Border Background="Blue">
    <Border.OpacityMask>
        <VisualBrush TileMode="None" Stretch="Uniform" AlignmentX="Center" AlignmentY="Center">
            <VisualBrush.Visual>
                <Image>
                    <Image.Source>
                        <DrawingImage>
                            <DrawingImage.Drawing>
                                <GeometryDrawing Brush="Black">
                                    <GeometryDrawing.Geometry>
                                        <EllipseGeometry Center="0,0" RadiusX="1" RadiusY="1" />
                                    </GeometryDrawing.Geometry>
                                </GeometryDrawing>
                            </DrawingImage.Drawing>
                        </DrawingImage>
                    </Image.Source>
                </Image>
            </VisualBrush.Visual>
        </VisualBrush>
    </Border.OpacityMask>
</Border>

我该如何固定口罩,使其既不模糊也不切断?

1 个答案:

答案 0 :(得分:1)

这可能更好。至少更简单。

<Border Background="Blue">
    <Border.OpacityMask>
        <DrawingBrush Stretch="Uniform" AlignmentX="Center" AlignmentY="Center">
            <DrawingBrush.Drawing>
                <GeometryDrawing Brush="Black">
                    <GeometryDrawing.Geometry>
                        <EllipseGeometry RadiusX="1" RadiusY="1" />
                    </GeometryDrawing.Geometry>
                </GeometryDrawing>
            </DrawingBrush.Drawing>
        </DrawingBrush>
    </Border.OpacityMask>
</Border>