I've been going through the same thing myself. I had all my styles in the Shared project in /Assets/Themes/MySharedStyles.xaml
.
The model for Shared content in Universal apps is quite cool. If you have a class or page with the same name (and possibly type) in both projects, then it becomes available in the shared project.
This means that you can put all the shared styles in a file like MySharedStyles.xaml
and then in both the Windows and Windows Phone apps create a resource dictionary, '/Assets/MyPlatformSpecificStyles.xaml'.
In your Shared App.xaml you can then do this:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Themes/MySharedStyles.xaml" />
<ResourceDictionary Source="Assets/Themes/PlatformSpecificStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
PlatformSpecificStyles will be pulled from the appropriate project based on the Platform DropDown in VS during design time and at runtime.
If you just want to override some specifics in a project, like swapping out a FontFamily
on one project or another, you can change the specific font in the MySharedStyles
file for FontFamily="{TemplateBinding FontFamily}"
then you can simply set it in the places that you use that style in your projects.
These strategies work, I'm using them in an app today.