2016-02-05 108 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