我使用Visual Studio 2017的build 15.6.2构建了一个测试UWP应用程序.UWP项目是通过选择:" Cross Platform" - > "移动应用程序(Xamarin Forms)",然后我选择:"空白应用"。
“解决方案”窗口如下所示:
请注意共享代码部分中的依赖关系部分。
然后我使用Visual Studio,build 15.6.4创建了一个类似的项目,我得到了一个解决方案窗口,如:
请注意,依赖关系部分已被删除。 我的测试SkiaSharp的代码被破坏了,因为MainPage.xaml找不到SkiaSharp:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
x:Class="TrinMeter.MainPage">
<skia:SKCanvasView x:Name="CanvasView"
PaintSurface="OnCanvasViewPaintSurface" />
</ContentPage>
为什么Microsoft删除了Dependencies部分?
查尔斯
答案 0 :(得分:0)
实际上项目是不同的。最上面的一个使用PCL或标准库来共享代码。底部使用共享库。要添加引用或nuget包,您需要将其添加到UWP,iOS和UWP应用程序。
答案 1 :(得分:0)
尝试了几个模板后,我终于找到了正确的模板。
第1步:
第2步:这非常重要。请注意,单选按钮已更改为“.NET Standard”。
步骤3:现在我们可以添加依赖项,添加SkiaSharp
和
MainPage.xml应如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
xmlns:local="clr-namespace:Test2"
x:Class="Test2.MainPage">
<skia:SKCanvasView x:Name="CanvasView"
PaintSurface="OnCanvasViewPaintSurface" />
</ContentPage>
和代码隐藏是:
using SkiaSharp;
using SkiaSharp.Views.Forms;
using Xamarin.Forms;
namespace Test2 {
public partial class MainPage : ContentPage {
public static readonly SKCanvasView canvasView = new SKCanvasView();
public MainPage() {
InitializeComponent();
canvasView.PaintSurface += OnCanvasViewPaintSurface;
Content = canvasView;
}
private void OnCanvasViewPaintSurface(object sender, SKPaintSurfaceEventArgs e) {
var surface = e.Surface;
var canvas = surface.Canvas;
var width = e.Info.Width;
var height = e.Info.Height;
var x = width/2.0f;
var y = height/2.0f;
var paint = new SKPaint();
paint.TextSize = 14.0f;
paint.IsAntialias = true;
paint.Color = SKColors.Red;
paint.IsStroke = false;
var textBounds = new SKRect();
var text = "Welcome to SkiaSharp";
paint.MeasureText(text, ref textBounds);
var textWidth = textBounds.Width + 4.0f;
var textHeight = textBounds.Height + 2.0f;
x -= textWidth/2.0f;
canvas.DrawText(text, x, y, paint);
}
}
}
当选择Test2.UWP作为启动项目时,您将看到:
现在是啤酒的时候了!