У меня есть приложение, в котором вы можете рисовать на холсте (например, Paint). Код C# выглядит примерно так:
private void startDrawing(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
_drawingStart = e.GetPosition((UIElement)sender);
_isDrawing = true;
}
private void stopDrawing(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
_isDrawing = false;
}
private void doDrawing(object sender, System.Windows.Input.MouseEventArgs e)
{
if (_isDrawing)
{
Point current = e.GetPosition((UIElement)sender);
Line line = new Line() { X1 = _drawingStart.X, Y1 = _drawingStart.Y, X2 = current.X, Y2 = current.Y };
line.Stroke = Color;
line.StrokeThickness = StrokeThickness;
DrawingCanvas.Children.Add(line);
_drawingStart = current;
}
}
И холст:
<Canvas x:Name="DrawingCanvas"
Grid.Row="1"
Grid.Column="1"
Background="Transparent"
MouseLeftButtonDown="startDrawing"
MouseLeftButtonUp="stopDrawing"
MouseMove="doDrawing" />
Когда StrokeThickness мал, все работает нормально. Но если я установлю StrokeThickness на большее число (например, 100), линия будет нарисована в стиле «зигзаг» и не будет «сплошной». Есть идеи, как этого избежать? Или, может быть, как добиться е закругленной линии (закругленные концы линии)? Думаю, это решит проблему.
Points
полилинии. Смотрите мой отредактированный ответ. - person Clemens   schedule 28.04.2015