【发布时间】:2014-02-01 22:41:45
【问题描述】:
我正在尝试创建一个简单的应用程序来跟踪右手腕位置并在其移动时绘制线条(或者更确切地说是带有曲线的路径)(按下鼠标左键时使用鼠标进行 InkCanvas 控件的确切行为)。
所以我跟踪 RightWrist 的位置变化并以这种方式画线:
public void Paint(Point startPoint, Point nextPoint, InkCanvas paintSurface)
{
Line line = new Line();
if (currentPoint.X == 0 && currentPoint.Y == 0)
{
currentPoint = new Point();
currentPoint = startPoint;
}
line.Stroke = new SolidColorBrush(currentColor);
line.StrokeThickness = 10;
line.X1 = currentPoint.X;
line.Y1 = currentPoint.Y;
line.X2 = nextPoint.X;
line.Y2 = nextPoint.Y;
currentPoint = nextPoint;
paintSurface.Children.Add(line);
}
当我使用 StrokeThickness=1 时没有问题。如果笔划较大,曲线上的线条不平滑(而是用小部件构建),而我想达到与使用鼠标在 InkCanvas 上绘制相同的结果,并将其绘图属性设置为:
<InkCanvas.DefaultDrawingAttributes>
<DrawingAttributes x:Name="attribute" Width="10" Height="10" Color="Green" />
</InkCanvas.DefaultDrawingAttributes>
用鼠标绘制的结果是平滑的“线”。
【问题讨论】: