Due to the fact that our programming world is trying to share problems between people, we can conclude that VisualStateManager is a really useful tool for a clear separation of duties.
There is a clear separation of responsibilities: the author of the control determines what the visual states of the control are, and determines when the control goes into each visual state; the author of the template indicates how the control looks in each visual state.
see this article
source share