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

WPF画布上的重叠线条混合颜色-如何修复?,wpf,canvas,colors,Wpf,Canvas,Colors,如果我画一条线(假设ls只是一条带坐标的线段) 。。。我有一条红线。如果我这样做 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.P

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

。。。我有一条红线。如果我这样做

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);
。。。我得到一条绿线。
但是如果我同时做这两件事(使用相同的坐标),我会得到一种棕橙色,就好像这两条线的颜色是混合的,就好像这两条线有某种透明度一样。我想做的是让最近的一条线画在前一条线上,这样得到的颜色就是最近的颜色——在本例中是绿色


要实现这一点,我需要做些什么?

尝试在
GeometryCnv上将
SnapsToDevicePixels
设置为true。
两行的混叠都会导致您看到的效果。

这是一个不错的选择!
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);