如何在 UWP 中切换 InkCanvas 和 Canvas

How to switching between InkCanvas and Canvas in UWP

我正在努力使用新的 UWP InkCanvas 因为我 apps.If 您熟悉 UWP 中的新 InkCanvas,非常感谢您的帮助。

我有一个 UWP 应用程序需要在 InkCanvasCanvas 之间切换,我希望使用 InkCanvas 进行绘图,Canvas 用于创建内容,例如 RichEditbox, Image, 等等...

我的XAML在下面

<Grid Margin="100,0,100,0" Background="White" x:Name="MainGrid" PointerMoved="MyCanvas_PointerMoved" PointerReleased="MyCanvas_PointerReleased" PointerPressed="MyCanvas_PointerPressed">
            <Canvas x:Name="MyCanvas" />
            <InkCanvas x:Name="inkCanvas" Canvas.ZIndex="0" />
            <!-- End "Step 2: Use InkCanvas to support basic inking" -->
</Grid>

我试图通过使用

让我的 Canvas ZIndex 大于 InkCanvas
private void AppBarButton_Click(object sender, RoutedEventArgs e)
    {
        if(Canvas.GetZIndex(MyCanvas) > 1)
        {
            Canvas.SetZIndex(MyCanvas, 0);
        }
        else
        {
            Canvas.SetZIndex(MyCanvas, 5);
        }
    }

但是我不能让我的 Canvas 出现在前面,如果我在上面画画,InkCanvas 会继续捕捉我的笔画。

有谁知道如何在不将我的 InkCanvasVisibility 更改为 Collapsed 的情况下,在我的 Grid 中切换 Canvas 和 InkCanvas?

默认情况下 Canvas 背景是空的 (null),因此它不会捕获指针输入并将其传递给 InkCanvas

如果你想阻止这种情况,你可以将其 Background 设置为 Transparent

但是,当您开始在 Canvas 本身上放置一些控件时,它们应该捕获笔输入,而不是让它通过 InkCanvas