我當前的程序允許用戶單擊一個點,然後單擊另一個點(至少20個像素)並在這兩個點之間繪製一條線。我已經使用了一條折線,這樣可以多次完成。儘管所有行的集合僅在所有的點擊完成後纔出現。實時繪製線到下一個點
void DrawingCanvas_MouseUp(object sender, MouseButtonEventArgs e) {
Point position = e.GetPosition(this);
if (leftList == null) {
//starting a new set
leftList.Add(position);
lastPoint = position;
return;
}
//calculate distance, i.e. end click
double a = lastPoint.X - position.X;
double b = lastPoint.Y - position.Y;
double distance = Math.Sqrt(a * a + b * b);
if (distance > 20) {
//continue to add to list
leftList.Add(position);
lastPoint = position;
} else {
//end of the line
paint();
leftList = new PointCollection();
}
}
private void paint() {
Polyline line = new Polyline();
line.Visibility = System.Windows.Visibility.Visible;
line.StrokeThickness = 2;
line.Stroke = System.Windows.Media.Brushes.Black;
line.Points = leftList;
myCanvas.Children.Add(line);
}
所以我的問題是雙重的:
A)我怎麼讓這個之後每按一下新的生產線立即加入。
B)我如何渲染的最後一個點之間的線鼠標光標是目前(即你選擇你的下一個點之前)
太棒了!這些刷子的顏色更好! – Ace 2013-04-11 02:53:38