gpt4 book ai didi

wpf - 如何关闭 DrawingBrush 的抗锯齿功能?

转载 作者:行者123 更新时间:2023-12-01 13:01:10 26 4
gpt4 key购买 nike

我想画一个三角形作为边框背景。一种方法是使用 DrawingBrush,但在较小的尺寸下,抗锯齿会扭曲三角形并使其变得模糊。 如何禁用抗锯齿?

<Border>
<Border.Background>
<DrawingBrush>
<DrawingBrush.Drawing>
<GeometryDrawing Brush="Red">
<GeometryDrawing.Geometry>
<PathGeometry>
<PathGeometry.Figures>
<PathFigureCollection>
<PathFigure IsClosed="True" StartPoint="0,3" IsFilled="True">
<PathFigure.Segments>
<LineSegment Point="3,0" />
<LineSegment Point="6,3" />
</PathFigure.Segments>
</PathFigure>
</PathFigureCollection>
</PathGeometry.Figures>
</PathGeometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
</Border.Background>
</Border>

我已经尝试在所有可能的元素上设置 RenderOptions.EdgeMode="Aliased"和 SnapsToDevicePixels="true",但这没有用...

编辑:
这是 Width=17 时绘制的三角形的样子;高度=12(缩放到800%):

Blurry triangle

如您所见,边缘已消除锯齿。禁用抗锯齿的所有常用选项似乎都不起作用...

最佳答案

我也对此感到非常沮丧。经过一些研究,我找到了答案:使用视觉画笔,将视觉中的图像元素设置为 SnapToDevicePixels = true 和别名边缘模式。请参见下面的示例:

            <Canvas VerticalAlignment="Top" Height="12" Margin="0,24,0,0">
<Canvas.Background>
<VisualBrush TileMode="Tile" Stretch="None" Viewport="-5,0,10,10" ViewportUnits="Absolute">
<VisualBrush.Visual>
<Image Stretch="None" RenderOptions.EdgeMode="Aliased" SnapsToDevicePixels="True">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing>
<GeometryDrawing.Pen>
<Pen Brush="#8F8E8F" Thickness="1" />
</GeometryDrawing.Pen>
<GeometryDrawing.Geometry>
<LineGeometry StartPoint="0,0" EndPoint="0,10"/>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</VisualBrush.Visual>
</VisualBrush>
</Canvas.Background>
</Canvas>

关于wpf - 如何关闭 DrawingBrush 的抗锯齿功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5921396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com