如何使用SkiaSharp.Views.UWP?

How to use SkiaSharp.Views.UWP?

有人知道如何在 SkiaSharp.Views.UWP 命名空间中使用 SKXamlCanvas 吗?

我找到了关于 SkiaSharp.Views.Forms 和 SKCanvasView 的信息。

官网有 https://developer.xamarin.com/api/namespace/SkiaSharp.Views.UWP/

但是nuget对UWP一无所知。 Nuget 仅包含 Forms 包。

查看 GitHub 上 SkiaSharp 存储库中的 UWP sample

他们这样使用 Canvas

<Page
    x:Class="SkiaSharpSample.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:SkiaSharpSample"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:skia="using:SkiaSharp.Views.UWP"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <skia:SKXamlCanvas PaintSurface="OnPaintSurface" />
    </Grid>
</Page>

这里重要的是使用 xmlns 属性导入 SkiaSharp.Views.UWP 命名空间,以便您可以在 XAML.

中使用它

SkiaSharp.Views NuGet package 安装到 UWP 项目后,命名空间本身应该可用。请注意,您只能从 UWP 项目访问 SKXamlCanvas,不能从共享的 class 库访问。

如果您使用 SkiaSharp.Forms,情况会有所不同。您不直接使用 SKXamlCanvas 。相反,该库在共享库中使用 SkiaSharp.Views.Forms.SKCanvasView,然后使用 Xamarin.Forms 自定义渲染器将此视图渲染为 UWP 上的 SKXamlCanvas(请参阅 source code here)。基本上你不应该直接使用 SKXamlCanvas 而是使用 SKCanvasView