我正在C# UWP
写一个应用程序。现在我有InkCanvas
覆盖整个屏幕,Rectangle
表示允许用户开始绘图的区域。一旦用户开始绘图(通过在矩形区域内按下),允许用户在整个屏幕上的任何地方绘图,直到释放鼠标/笔。这是我现在的代码:
<Grid Name="Root" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<InkCanvas Name="MyInkCanvas"/>
<Rectangle Fill="Green" Width="100" Height="100"/>
</Grid>
我遇到的问题是,如果我将InkCanvas
置于顶部(最高zIndex),我可以绘制线条,但没有其他事件通过矩形。在我画画的时候,我也无法找到获得积分的方法。这意味着我无法检查起点是否在矩形区域内。如果我把矩形放在顶部,我按下矩形后就不能让InkCanvas注册一个按下的动作,这意味着不会绘制任何线条。那么,是否可以在特定区域内开始绘图?
答案 0 :(得分:0)
根据您的要求,您可以参考SimpleInk(方案8)官方代码示例。
使用SimpleInk项目的方案8中的以下方法,您可以找到鼠标位置,然后在绘制之前检查鼠标是否在指定区域。
private bool FollowCircleTest(CoreWetStrokeUpdateEventArgs args)
{
var position = args.NewInkPoints[0].Position;
var distanceFromCenter = DistanceFromCenter(position);
return InCircleEdgeZone(distanceFromCenter);
}