2009-10-02 113 views
6

我有一个Silverlight应用程序,我需要在Web项目中的System.Windows中使用Vector类。但VS抱怨System.Windows不存在。我尝试添加引用,但它不在要添加的名称空间列表中。在.NET选项卡中,它从System.Web.Services转到System.Windows.Forms并完全跳过System.Windows。缺少System.Windows参考

真正奇怪的是System.Windows DOES存在于Silverlight项目的参考列表中。此外,我在这台机器上安装了另一个Silverlight应用程序,它具有完全相同的设置(两个项目,一个Silverlight,一个Web),并且参考在那里。

我看到有人在这里有类似的问题,但没有解决方案为我工作。有没有其他人经历过这个?

回答

7

我找到了!您必须添加对WindowsBase的引用。

设置Silverlight应用程序的常用方法(我猜)是有两个项目:一个用于Silverlight客户端代码,另一个用于服务器端aspx页面。 Silverlight参考池中包含System.Windows。 aspx参考池没有。它所具有的是“WindowsBase”dll,它使System.Windows名称空间(可能还有其他)在“使用”块中可用。但是它默认不包含在项目中。

+0

这没有为我工作。我想使用System.Windows.Media.Imaging.BitmapImage,所以我想这不是在WindowsBase中。 (注意:我可以在sliverlight客户端添加对System.Windows.DLL的引用,但不在服务器端。 – tkerwood 2011-09-07 04:17:45

+1

它位于 (#region Assembly System.Windows.dll,v2.0.50727 // c:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ Silverlight \ v4.0 \ System.Windows.dll #endregion) 所以只能在Silverlight客户端上使用,我会看看使用System.Drawing。改为图片 – tkerwood 2011-09-07 04:40:16

+0

在Silverlight 5中,这似乎不起作用... – Knasterbax 2012-12-05 09:23:46

0

似乎Klay发布的解决方案不适用于Silverlight 5(至少不在我的机器上)。

或者您可以使用 Vector2类从Microsoft.Xna.Framework

但这需要基于System.Windows.Vector代码有点重写,因为VNA Vector2使用花车,而不是的双打。