WinRT椭圆行程厚度不一致

时间:2014-11-29 21:16:09

标签: xaml windows-runtime microsoft-metro rendering ellipse

我想在WinRT(Windows 8.1)中绘制具有相同大小和笔触粗细的多个圆圈。如果我使用Ellipse元素并在所有元素上设置相同的值(无填充颜色),我会获得具有不同笔触粗细的圆。但它们都应具有相同的行程厚度。怎么解决这个问题?

Ellipse以编程方式创建,然后作为子元素添加到Grid

Ellipse e = new Ellipse();
e.Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255));
e.StrokeThickness = 1;
e.Width = 30;
e.Height = 30;

1 个答案:

答案 0 :(得分:1)

您没有看到不同的StrokeThickness您看到的是彼此重叠的2个或更多椭圆。但你可能想知道为什么它看起来“更厚”,这是因为椭圆的外/内边缘上的抗锯齿

当你有两个或两个以上时它们会相互混合,所以抗锯齿会显得更厚,因为半透明边缘会AlphaBlend,如果你有足够的层,那么所有外/内边缘将失去透明度,最终会变成一个非常锯齿状的椭圆。

如果你能想出如何像WPF的SnapsToDevicePixels那样关闭抗锯齿,那么你就不会有这种效果,但是你会有一个锯齿状的椭圆。