有没有人知道如何在SkiaSharp.Views.UWP命名空间中使用SKXamlCanvas?
我找到了有关SkiaSharp.Views.Forms和SKCanvasView的信息。
在官方网站上我们有 https://developer.xamarin.com/api/namespace/SkiaSharp.Views.UWP/
但是nuget对UWP一无所知。 Nuget只有Forms的包。
答案 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
代替。