0

我想对 silverlight 和 wpf 版本的应用程序使用相同的 xaml 文件。

我需要的唯一区别是样式。我在 xaml 中使用了样式。但是对于 silverlight,我不想在我的 xaml 文件中使用任何样式,因为样式是以主题形式定义的应用程序级别。

有没有其他方法可以为 silvelight 和 wpf 版本使用相同的 xaml 文件?否则我不得不维护单独的 xaml 文件。

4

1 回答 1

0

您可以为两者重用相当多的 xaml,我有一些项目,我在其中链接所有相同的文件、xaml 和代码,并且它工作得很好。

需要注意的是,某些事情并不总是能很好地匹配,例如 wpf 有一个用于 itemscontrol 的模板选择器,而 silverlight 没有。

使用 SizeToContent 往往会在两者中产生不同的行为,我建议避免使用它,我认为它不会给你带来任何好处。

我建议有一个单独的“基础”资源,您可以在其中保留两个文件的差异。例如,事件触发器之类的东西在 silverlight 中几乎没有填写。您将为每个版本都有一个基类,它们会抽象出它们的差异,然后您可以将键标记为相同并将它们用作链接文件中的静态资源。

另一个大问题是你要注意 uielements 发生的顺序事件,加载、布局和应用模板事件以不同的顺序应用,所以如果你要制作一个模板化控件,你必须在那里小心,这不是一个交易破坏者你可以解决它,只是要注意。

其他需要注意的事情 -silverlight 命令需要更多的努力,你必须实现 ICommand,这在 wpf 中并非总是如此,但我使用我的实现来帮助共享代码。-wpf 是超集,它有很多silverlight 没有的功能,通常它们是方便的做事方式,你只想避免这些。很好的例子是预览事件,而不是silverlight,但您通常可以找到一个与行为匹配的事件。

于 2012-08-09T13:17:28.733 回答