我自己也经历过同样的事情。我在共享项目中拥有我所有的样式/Assets/Themes/MySharedStyles.xaml
。
通用应用程序中共享内容的模型非常酷。如果您在两个项目中有一个具有相同名称(并且可能是类型)的类或页面,则它在共享项目中可用。
这意味着您可以将所有共享样式放在一个文件MySharedStyles.xaml
中,然后在 Windows 和 Windows Phone 应用程序中创建一个资源字典“/Assets/MyPlatformSpecificStyles.xaml”。
在您的 Shared App.xaml 中,您可以执行以下操作:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Themes/MySharedStyles.xaml" />
<ResourceDictionary Source="Assets/Themes/PlatformSpecificStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
PlatformSpecificStyles 将在设计时和运行时根据 VS 中的 Platform DropDown 从适当的项目中提取。
如果您只想覆盖项目中的某些细节,例如FontFamily
在一个或另一个项目上换掉一个,您可以更改MySharedStyles
文件中的特定字体,FontFamily="{TemplateBinding FontFamily}"
然后您可以简单地将其设置在您在项目中使用该样式的位置。
这些策略有效,我今天在应用程序中使用它们。