【问题标题】:missing System.Windows reference缺少 System.Windows 参考
【发布时间】:2009-10-02 20:21:10
【问题描述】:

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

真正奇怪的是 System.Windows 确实存在于 Silverlight 项目的参考列表中。此外,我在这台机器上还有另一个 Silverlight 应用程序,其设置完全相同(两个项目,一个 Silverlight,一个 Web),参考资料就在那里。

我看到这里的其他人也遇到了类似的问题,但没有一个解决方案对我有用。有其他人经历过吗?

【问题讨论】:

    标签: silverlight reference namespaces


    【解决方案1】:

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

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

    【讨论】:

    • 这对我不起作用。我正在尝试使用 System.Windows.Media.Imaging.BitmapImage,所以我猜这不在 WindowsBase 中。 (注意:我可以在(sliverlight)客户端添加对 System.Windows.DLL 的引用,但不能在服务器端添加。
    • 它位于 (#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.Image。
    【解决方案2】:

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

    您也可以使用 Vector2 类来自 Microsoft.Xna.Framework

    但这需要基于 System.Windows.Vector 重写一些代码,因为 VNA Vector2 使用浮点数而不是双精度数。

    【讨论】: