WPF画布上的重叠线条混合颜色 - 如何修复?

时间:2016-02-05 16:42:57

标签: wpf canvas colors

如果我画一条线(假设 ls 只是一个带有一些坐标的线段)。 。 。

Line line = new Line();
String rgb = "#FF0000";  // Red
line.Stroke = (SolidColorBrush)(new BrushConverter().ConvertFrom(rgb));
ls = PlyList[p].L3Ds[seg];
line.X1 = ls.P0.X;
line.Y1 = ls.P0.Y;
line.X2 = ls.P1.X;
line.Y2 = ls.P1.Y;
GeometryCnv.Children.Add(line);

......我得到一条红线。如果我做 。 。 。

Line line = new Line();
String rgb = "#00FF00";  // Green
line.Stroke = (SolidColorBrush)(new BrushConverter().ConvertFrom(rgb));
ls = PlyList[p].L3Ds[seg];
line.X1 = ls.P0.X;
line.Y1 = ls.P0.Y;
line.X2 = ls.P1.X;
line.Y2 = ls.P1.Y;
GeometryCnv.Children.Add(line);

......我得到一条绿线 但如果我同时做两个(使用相同的坐标),我会得到一个棕橙色,好像两条线的颜色混合在一起,好像线条有某种透明度。我想要发生的是最近一行绘制前一行,以便生成的颜色是最近的颜色 - 在这种情况下为绿色。

我需要做些什么来实现这个目标?

1 个答案:

答案 0 :(得分:1)

尝试在SnapsToDevicePixels上将GeometryCnv.设为真为两行的别名导致您所看到的效果。