从 WPF 应用程序引用 Silverlight 类库时出错

Eri*_*rix 3 wpf .net-4.0 silverlight-4.0

我有一个 WPF 应用程序和一个 Silverlight 应用程序。它们都用于显示地图并共享一些相同的功能。

为了保持 DRY,我创建了一个 Silverlight 类库项目。我从 Silverlight 和 WPF 中引用了这个。它包含一些在两个项目中都很有用的实用方法。例如,我有这个方法:

public static void CenterText(TextBlock name, Polygon poly)
Run Code Online (Sandbox Code Playgroud)

Silverlight 项目对此没有任何问题。但是,从我的 WPF 应用程序调用它时出现以下错误:

类型“System.Windows.Shapes.Polygon”是在未引用的程序集中定义的。您必须添加对程序集“System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e”的引用

但是,我在文件顶部有这一行:

using System.Windows.Shapes;
Run Code Online (Sandbox Code Playgroud)

所以 WPF 可以很好地看到 Polygon 类。我的猜测是 Silverlight 类库使用的框架版本与 WPF 项目使用的版本不兼容。

所以问题是,我是否坚持在我的 WPF 应用程序中重写完全相同的代码,或者有什么方法可以在两者之间共享?

谢谢!

Chr*_*isF 5

您是对的,Silverlight 使用完全独立的框架版本。它比事件 .NET 客户端运行时要小得多。

这意味着您不能在同一个应用程序中混合使用 WPF 和 Silverlight 程序集。