/ / Überlappende Linien auf WPF-Canvas-Mischfarben - wie man das repariert? - wpf, leinwand, farben

Überlappende Linien in WPF-Canvas-Mischfarben - wie wird es repariert? - Wpf, Leinwand, Farben

Wenn ich eine Linie zeichne (nehme an ls ist nur ein Liniensegment mit einigen Koordinaten). . .

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);

... Ich bekomme eine rote Linie. Wenn ich mache . . .

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);

... Ich bekomme eine grüne Linie.
Aber wenn ich beides mache (mit den gleichen Koordinaten), icherhalten Sie eine bräunlich-orange Farbe, als ob die Farben der zwei Linien gemischt wurden, als ob die Linien eine Art Transparenz hatten. Ich möchte, dass die letzte Linie über die vorherige gezogen wird, sodass die resultierende Farbe die neueste Farbe ist - in diesem Fall Grün.

Was muss ich tun, um dies zu erreichen?

Antworten:

1 für die Antwort № 1

Versuchen Sie die Einstellung SnapsToDevicePixels wahr auf GeometryCnv. Aliasing von beiden Zeilen führt zu dem Effekt, den Sie sehen.