C# DrawingContext.DrawGeometry使用间隙绘制相邻几何图形

C# DrawingContext.DrawGeometry使用间隙绘制相邻几何图形,c#,wpf,C#,Wpf,使用DrawingContext.DrawingGeometry,我正在绘制两个具有公共边的三角形。我希望这个三角形被填充,但不要用钢笔笔划,因为钢笔有厚度,得到的三角形的厚度比预期的要大一半。使用下面附带的代码,我得到了一个奇怪的结果(见图)——三角形之间有一个小间隙。我做错了什么?有没有比在公共边上画额外的线更好的方法 XAML: 结果: 您可以将视觉效果设置为EdgeMode.Aliased public DrawIt() { RenderOptions.SetEdgeMode(t

使用DrawingContext.DrawingGeometry,我正在绘制两个具有公共边的三角形。我希望这个三角形被填充,但不要用钢笔笔划,因为钢笔有厚度,得到的三角形的厚度比预期的要大一半。使用下面附带的代码,我得到了一个奇怪的结果(见图)——三角形之间有一个小间隙。我做错了什么?有没有比在公共边上画额外的线更好的方法

XAML:

结果:

您可以将视觉效果设置为
EdgeMode.Aliased

public DrawIt()
{
    RenderOptions.SetEdgeMode(this, EdgeMode.Aliased);
    ...
}
另请参见属性。

您可以将视觉效果的别名设置为
EdgeMode.Aliased

public DrawIt()
{
    RenderOptions.SetEdgeMode(this, EdgeMode.Aliased);
    ...
}

另请参见属性。

您的解决方案在上述示例中有效,但我不想关闭抗锯齿功能。其次,在我的真实场景中,我无法更改此设置,因为我使用的第三方库会覆盖它。还有其他选择吗?恐怕没有。当您说第三部分库覆盖该设置时,是否意味着它显式设置了
EdgeMode.Unspecified
?您的解决方案在上面的示例中有效,但我不想关闭抗锯齿功能。其次,在我的真实场景中,我无法更改此设置,因为我使用的第三方库会覆盖它。还有其他选择吗?恐怕没有。当您说第三部分库覆盖该设置时,是否意味着它显式地设置了
EdgeMode.Unspecified
public DrawIt()
{
    RenderOptions.SetEdgeMode(this, EdgeMode.Aliased);
    ...
}