如何使用SkiaSharp.Views.UWP?

时间:2018-02-14 13:32:29

标签: c# uwp skiasharp

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

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

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

但是nuget对UWP一无所知。 Nuget只有Forms的包。

1 个答案:

答案 0 :(得分:2)

在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>

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

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

如果你使用SkiaSharp.Forms,事情会有所不同。您不能直接使用SkiaSharp.Views.Forms.SKCanvasView。相反,库在共享库中使用SKXamlCanvas,然后使用Xamarin.Forms自定义渲染器在UWP上将此视图呈现为SKXamlCanvas(请参阅source code here)。基本上你不应该直接使用SKCanvasView而是使用n = 2006601400162797 n2 = str(n) n2 = float(n2[:10] + '.' + n2[10:]) # 2006601400.162797 代替。