2

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

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

在官方网站我们有 https://developer.xamarin.com/api/namespace/SkiaSharp.Views.UWP/

但是nuget对UWP一无所知。Nuget 只为表单提供包。

4

1 回答 1

7

查看GitHub 上 SkiaSharp 存储库中的UWP 示例。

他们正在使用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>

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

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

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

于 2018-02-14T13:46:09.213 回答