현재 프로그램은 사용자가 포인트를 클릭 한 다음 다른 포인트 (최소 20 픽셀 이상)를 클릭하고 2 포인트 사이에 선을 그립니다. 이 작업을 여러 번 수행 할 수 있도록 Polyline을 사용했습니다. 모든 라인 집합은 모든 클릭이 완료된 후에 만 나타납니다. 각각의 새로운 라인은 즉시 추가를 클릭 한 후 수 있도록실시간으로 다음 포인트로 라인을 그립니다.
A) 내가 어떻게해야합니까 :
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);
}
그래서 제 질문은 두 가지입니다. 나는 마지막 점 사이의 라인을 렌더링하려면 어떻게
B) 마우스 커서가) 다음 지점을 선택
굉장! 그 브러시 색상들도 더 좋습니다! – Ace