Win2D中的Vector2类型绘制方法不一致

时间:2015-10-18 13:53:20

标签: c# win-universal-app windows-10-iot-core win2d

我正在Windows 10中进入UAP世界的第一步。

我正在尝试使用Win2D库编写一个在IoT / R-PI2设备上显示图形的小应用程序。

我有一个显示单行的绘图方法:

private void Canvas_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
  var a = new System.Numerics.Vector2(10,10);
  var b = new System.Numerics.Vector2(100,100);

  args.DrawingSession.DrawLine(a,b,Colors.Yellow);
}

VS2015社区编辑。 IntelliSense告诉我,我正在使用参数'a'和'b'提供不兼容的vector2类型。它期待Windows.Foundation.Numerics.Vector2而不是System.Numerics.Vector2。

但是,程序在桌面和r-pi上编译和运行都很好。

我的部分应用基于this tutorial,其中该方法明确需要System.Numeric.Verctor2个参数。

我在另一篇文章中读到,Windows 8.1和10以及GitHub issue之间的API已经发生了变化。

我还导入了这篇文章中提到的包,但它没有改变任何东西。

我不知道这篇文章是否与我的问题有关,但至少它提到了这两个名称空间的问题。

为什么IntelliSense会将此代码突出显示为错误? VS中有错误吗?

我在这里做错了吗?

项目:https://github.com/chrisi/IoTCanvas

一些相关的系统/ IDE规范:

  • Microsoft Visual Studio社区2015版本14.0.23107.0 D14REL
  • Microsoft .NET Framework版本4.6.00079
  • 已安装版本:社区
  • Visual Basic 2015 00322-20000-00000-AA366
  • Visual C#2015 00322-20000-00000-AA366
  • Visual C ++ 2015 00322-20000-00000-AA366
  • Windows Phone SDK 8.0 - ENU 00322-20000-00000-AA366
  • Visual Studio Package 1.0的应用程序洞察工具
  • JetBrains ReSharper Ultimate 2015.2 Build 103.0.20150818.200216
  • Microsoft Azure移动服务工具1.4
  • NuGet Package Manager 3.2.0
  • PreEmptive Analytics Visualizer 1.2
  • SQL Server Compact& SQLite Toolbox 4.3.0
  • 适用于通用Windows应用程序的Visual Studio工具14.0.23309.00 d14oob

1 个答案:

答案 0 :(得分:1)

System.Numerics.Vectors附带Windows 10,您无需单独安装。

您看到对Windows.Foundation.Numerics的引用的原因是因为Windows.Foundation.Numerics是WinRT类型的名称。这在.NET中被预测为System.Numerics.Vector2。其他语言可能以不同的方式投影 - 例如,在C ++ / CX中它是Windows :: Foundation :: Numerics :: float2。

我强烈怀疑您遇到了ReSharper的问题 - 请参阅https://github.com/Microsoft/Win2D/issues/145。那里的话是:

  

这个在R#10中修复,修复程序将在下一个EAP版本中提供。