The theme palettes are designed as singletons which own all the properties that specify the looks of the current theme - colors, fonts, sizes etc. The LoadPreset method changes the values to these properties to a predefined set. Any changes to the singleton's properties result in creating, freezing and updating a resource in a thread-static resource dictionary that is merged on startup into the resource dictionaries for each of the assemblies. The applying of the resources is done via a DynamicResourceExtension to all the places they are needed. The theme palettes are only one instance and changing any of their properties applies to the whole application.
At this moment our themes do not provide out-of-the-box support for applying different theme variations per control instance. What you can do to achieve that is to create a resource dictionary and merge in it the needed resources. The resource key is of type VisualStudio2013ResourceKey and the values can be found from the palette, extracted at runtime or our documentation
. The application of the resources, if the key is correct, should be handled from there by the theme's DynamicResourceExtension.
Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin
, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.