Почему триггеры не реализованы в Silverlight? В конечном итоге, ресурсные ограничения. Команда Silverlight работала над очень сжатым циклом доставки и решила реализовать VisualStateManager вместо триггеров, потому что они чувствовали, что VSM доставил большую часть того, что им было нужно, и было бы намного дешевле реализовать, чем полная триггерная система WPF.
Какая разница между ними? Триггеры находятся под контролем дизайнера шаблонов: они позволяют разработчику (скажем) шаблона кнопки учитывать любые сумасшедшие состояния пользовательского интерфейса, в которых он заинтересован. Состояния находятся под контролем автора элемента управления: автор элемента управления должен предвидеть какие события важны для отображения элемента управления, и соберите их в состояния.
Эта статья расширяет различия: сама статья утверждает триггерный подход, но комментарии Джона Госсмана и Кристиана Шормана приводят аргументы в пользу состояний.