0

我在 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 上编译和运行都很好。

我的应用程序的一部分基于本教程,其中该方法显然需要System.Numeric.Verctor2参数。

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

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

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

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

我在这里做错什么了吗?

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

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

  • Microsoft Visual Studio 社区 2015 版本 14.0.23107.0 D14REL
  • Microsoft .NET 框架版本 4.6.00079
  • 安装版本:社区
  • Visual Basic 2015 00322-20000-00000-AA366
  • 视觉 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 包 1.0 的 Application Insights 工具
  • JetBrains ReSharper Ultimate 2015.2 Build 103.0.20150818.200216
  • 微软 Azure 移动服务工具 1.4
  • NuGet 包管理器 3.2.0
  • PreEmptive Analytics Visualizer 1.2
  • SQL Server Compact &SQLite 工具箱 4.3.0
  • 适用于通用 Windows 应用程序的 Visual Studio 工具 14.0.23309.00 d14oob
4

1 回答 1

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 版本中提供。

于 2015-10-19T16:49:24.033 回答