1) Imagine a DataGridColumnHeader control is meant to be in Green color by default.
2) If I click on it, it would activate the Sorting to "Sorted Ascending", this is when it should become Orange. Clicking again on it would change it to "Sorted Descending", which still should remain in Orange color.
The two cases above are easy to do with VSM. However the following two scenarios seem to me impossible without a Multi-trigger (which we dont have in Silverlight)
1b) Whenever I hover with the mouse over the non-sorted control, it should become light green. I hover away, it should go back to base green.
2b) Whenever I hover with the mouse over the sorted control, it should become light orange. I hover away, it should go back to base Orange.
How should I determine within MouseOver state, in which mode sorted state is, in order to choose light orange or light green accordingly? Alternatively is it possible to lighten the current color up, without knowing what color it actually is?
The easiest would probably be to just make the opacity lower when mouse over, effectively making both green and orange lighter.
Or alternatively you could create a visual state group for sorted states, set it with a data trigger and change the colour of the mouse over element accordingly.