The Silverlight Toolkit
contains implicit style management features that let you create a nice theme – buttons, checkboxes, you name it – and have it automatically applied to an application. Nearly half a year ago, I worked with Mehdi
to create a rather simple, but functional, tool prototype for working with Xaml theme files and ISM-consumable implicit style definitions.
Great stuff for designers, this prototype tool enables designers to use Blend day-to-day for getting immediate feedback and excellent tooling support, while being able to round-trip themes, from Blend to ISM to Blend again.
This tool is not guaranteed to be lossless. Use it at your own risk. It will take a XAML file that Blend appreciates (details on Mehdi's blog
- No x:Key attributes
- References to other styles by key name become fully qualified resource lookups: from ScrollViewerStyle to System.Windows.Controls.ScrollViewer
- There are some assumption about naming
- Adding explicit references to other styles
... and convert it into an ISM theme.
Today I’m finally blogging a prototype version of the app, a work-in-progress, hoping that maybe others will have the time to make better use of it than I have. I have grand visions for the tool: add a file system watcher, monitor file saves in Blend, and then immediately msbuilding updated ISM theme assembly files. Updating sample apps behind the scenes. Real-time theme previews. None of those grand features are in the download. Give it time.
Download a VS'08 console project with the source (Ms-PL)
Read Mehdi's guide on ISM styles
To run, use either:
ToolkitTheme.exe App.xaml /t:ism MyIsmTheme.xaml
ToolkitTheme.exe MyIsmTheme.xaml /t:blend App.xaml
Since this is a proof-of-concept prototype, I'm only releasing source for now, assuming you're a developer at heart - no designer binaries. Let me know if you have any feedback on the tool!