1

我使用 Visual Studio 2017 的 build 15.6.2 构建了一个测试 UWP 应用程序。UWP 项目是通过选择:“跨平台”->“移动应用程序(Xamarin 表单)”构建的,然后我选择:“空白应用程序”。

解决方案窗口如下所示:

在此处输入图像描述

请注意共享代码部分中的依赖项部分。

然后我用 Visual Studio 创建了一个类似的项目,构建 15.6.4,我得到了一个解决方案窗口,如:

在此处输入图像描述

请注意,Dependencies部分已被删除。由于 MainPage.xaml 找不到 SkiaSharp,我测试 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 部分?

查尔斯

4

2 回答 2

0

其实项目不一样。最上面的一个使用 PCL 或标准库来共享代码。底部使用共享库。若要添加引用或 nuget 包,您需要将其添加到 UWP、iOS 和 UWP 应用。

于 2018-03-28T01:03:21.007 回答
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);
    }
  }
}

When select the Test2.UWP to be the start-up project, you will then see:

在此处输入图像描述

现在是喝啤酒的时候了!

于 2018-03-28T19:39:40.740 回答