想知道是否有人知道如何处理这个问题。
在 WP7.1 中,我们可以利用优秀的Windows Phone Toolkit来包含一些有用的控件,例如 LongListSelector 和 Panorama。这些是Microsoft.Phone.Controls.Toolkit
组件的一部分。
在 WP8 中,我们不需要这两个控件的工具包,因为它们是官方Microsoft.Phone.Controls
程序集的一部分。
我有多个目标我的应用程序,所以我有两个手机项目,WP71 和 WP80,我将 WP80 中的文件链接到 WP71 中的文件。
在我尝试在 XAML 页面中使用 Panorama 或 LongListSelector 控件之前,这非常有效。在 WP80 项目中,如果我引用手机工具包的 WP80 DLL,它不包含上述两个控件,因为令人惊讶的是,它们已经存在。
问题是,WP71 需要 XAML 顶部的命名空间声明,并且两个项目的命名空间不同。
WP71:
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
<toolkit:Panorama />
WP80:
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
<phone:Panorama />
我无法构建项目,因为每个项目都认为如果我只使用一个命名空间是不正确的,因为它们需要指向不同的程序集。
我不认为我可以在我的 XAML 中使用编译常量,否则这将是一个修复。
我的解决方法最初只是在我的 WP80 项目中引用旧的 WP71 DLL。但是其他 3rd 方库绑定了官方 8.0 SDK DLL(在我的例子中是 Caliburn),所以它会导致问题。
我该如何解决这个泡菜?我脑海中唯一的想法是诉诸代码隐藏来创建控件的实例:(有更好的方法吗?