我正在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规范:
答案 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版本中提供。