Brief description of the issue. I have several programs which are all plugins to the same parent application. Because the style dictionary themes are singletons changing them for one changes them for all of the main application including all plugins (all mine plus any other users that may be using it). Right now I'm doing things like this:
FluentPalette.Palette.AccentColor = Color.FromRgb(86, 185, 154);
FluentPalette.Palette.AccentMouseOverColor = Color.FromRgb(108, 108, 108);
This works fine, but it affects anything using the Fluent theme with those colors. If any of my other plugins want to use different theme colors (spoiler alert, they do) I can't get it to do both.
That's the issue. Right now I have it set up to use implicit themes and I merge the theme dictionaries from the theme dll into a common resource dictionary in each plugin and then any override styles that are necessary for each plugin are in that dictionary and that dictionary is merged into any necessary user controls in the plugin. This effectively gives me one place for each plugin to manage the Telrik stuff and separates them from each other all except the main color overrides show above.
So the question is; is there a way to set these colors only in a specific resource dictionary? Instead of setting these in code behind like I've shown, can I have a specific dictionary say that when it's merged it that the 'Accent Color' key is green or red or whatever it should be for that dictionary and have it different for another dictionary?