为什么从UWP App的共享代码中删除了Dependencies部分?

时间:2018-03-28 00:46:20

标签: c# visual-studio uwp skiasharp

我使用Visual Studio 2017的build 15.6.2构建了一个测试UWP应用程序.UWP项目是通过选择:" Cross Platform" - > "移动应用程序(Xamarin Forms)",然后我选择:"空白应用"。

“解决方案”窗口如下所示:

enter image description here

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

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

enter image description here

请注意,依赖关系部分已被删除。 我的测试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部分?

查尔斯

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

尝试了几个模板后,我终于找到了正确的模板。

第1步:

appengine-web.xml

第2步:这非常重要。请注意,单选按钮已更改为“.NET Standard”。

enter image description here

步骤3:现在我们可以添加依赖项,添加SkiaSharp

enter image description here

enter image description here

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作为启动项目时,您将看到:

enter image description here

现在是啤酒的时候了!