VisualBrush из геометрии DrawingImage размыто и обрезано - PullRequest
0 голосов
/ 20 ноября 2018

Я хотел бы нарисовать круговую геометрию в 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 голосов
/ 20 ноября 2018

Это может быть лучше.По крайней мере, это проще.

<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>
...