2016-02-05 49 views
1

如果我画一条线(假定ls只是一个带有一些坐标的线段)。 。 。WPF画布上的重叠线混合颜色 - 如何解决?

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

尝试将SnapsToDevicePixels设置为true GeometryCnv.从两条线别名都会导致您看到的效果。

+0

良好的通话,做到了! – user316117