【发布时间】:2017-06-02 15:38:24
【问题描述】:
我希望能够在 InkCanvas 上绘制形状。到目前为止,我有以下 XAML:-
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Canvas x:Name="selectionCanvas" />
<InkCanvas x:Name="inker" />
</Grid>
在页面构造函数中,我有以下内容:-
inker.InkPresenter.UnprocessedInput.PointerPressed += StartLine;
inker.InkPresenter.UnprocessedInput.PointerMoved += ContinueLine;
inker.InkPresenter.UnprocessedInput.PointerReleased += CompleteLine;
inker.InkPresenter.InputProcessingConfiguration.RightDragAction = InkInputRightDragAction.LeaveUnprocessed;
而这三个事件如下:-
private void StartLine(InkUnprocessedInput sender, PointerEventArgs args)
{
line = new Line();
line.X1 = args.CurrentPoint.RawPosition.X;
line.Y1 = args.CurrentPoint.RawPosition.Y;
line.X2 = args.CurrentPoint.RawPosition.X;
line.Y2 = args.CurrentPoint.RawPosition.Y;
line.Stroke = new SolidColorBrush(Colors.Purple);
line.StrokeThickness = 4;
selectionCanvas.Children.Add(line);
}
private void ContinueLine(InkUnprocessedInput sender, PointerEventArgs args)
{
line.X2 = args.CurrentPoint.RawPosition.X;
line.Y2 = args.CurrentPoint.RawPosition.Y;
}
private void CompleteLine(InkUnprocessedInput sender, PointerEventArgs args)
{
}
我是否可以将当前在 selectionCanvas 上绘制的线条绘制到我的 InkCanvas 上?
谢谢,
杰夫
【问题讨论】:
-
您想在
Canvas上绘制形状转换为InkCanvas还是在InkCanvas上绘制形状转换为Canvas? -
您好,Jayden,感谢您的收看。最终,我希望能够在 InkCanvas 上绘制形状,以便将形状与任何其他墨水笔画一起保存。
-
如果要保存笔画,好像不用
Canvas?您要复制InkCanvas中的墨迹吗?如果有,请参考Scenario2 of SimpleInk。 -
不,我想做一些类似于在办公室添加形状的操作,然后将该形状渲染到 InkCanvas 以进行保存。例如,上面的代码在画布上在笔划开始点和结束点之间绘制一条直线。有没有办法将这条线坚持到 InkCanvas?我需要看看另一种方法吗?还是根本不可能?
-
似乎我们无法将
Line添加到InkCanvas。我们可以通过InkCanvas.InkPresenter.StrokeContainer.AddStroke方法将InkStroke添加到InkCanvas。您可以参考可以插入形状的Complex inking sample。