【发布时间】:2013-05-06 19:43:48
【问题描述】:
在 WinRT 和 WP8 之间共享代码时:
WP8 想要:
xmlns:vm="clr-namespace:MyApp.ViewModels"
WinRT 想要:
xmlns:vm="using:MyApp.ViewModels"
这意味着您不能像在 WP7、Silverlight、WPF 中那样在项目之间共享 XAML 代码(如用户控件)
有没有人找到解决方法? XmlnsDefinition 属性看起来可能会解决此问题,但 MS 将其从 WinRT 中移除。
【问题讨论】:
-
XAML 共享只能在 WP7/SL/WPF 之间通过在每个项目中实际维护 XAML 文件的单独副本来实现,因此“共享”有点用词不当。随着可移植类库的出现,这种情况实际上有所改变,尽管您仅限于使用所有目标平台上存在的类型和方法。在这种情况下,由于共享只是“复制文本”类型,您可以继续这样做(除了您需要调整 WinRT 的“使用”。)
-
您不需要复制文件,只需将它们添加为链接文件,因此您只需维护一个文件。有了这种改变,这显然是不可能的了。
-
实际上,在 WP7/SL/WPF 中,如果您坚持基本控件,您可以共享 XAML。诀窍是将您的主要 xaml 放在用户控件中。然后可以将用户控件作为链接共享到每个 VS 项目中。然后在包含用户控件的每个项目中定义一个页面或窗口或任何内容。
标签: silverlight windows-phone-7 xaml windows-runtime windows-phone-8