2009-10-14 2 views
2

У меня есть TextBlock, привязанный к свойству в моей модели просмотра. У меня есть StoryBoard с изменением текста и с использованием свойства Opacity. Я использую этот текст, чтобы дать пользователю обратную связь после того, как они выполнили операцию (успех, ошибка и т. Д.). Как запустить StoryBoard, когда свойство изменится с моей модели представления? Есть ли лучший способ сделать такой эффект?Начать раскадровку при изменении текста

ответ

4

Прошу прощения, я ненавижу рассказать об этом вам, но вы думаете об этом неправильно.

Не думайте в раскадровках, свойствах Opacity и Visiblity. Всегда думайте о «визуальных состояниях».

То, что вы только что описали (затухание в TextBlock в ответ на изменение бизнес-логики), является идеальным примером использования состояний VisualStateManager.

В принципе, у вас будет группа состояний «Is», у которой будет одно состояние, когда условие выполнено (какое-то состояние достигнуто), а другое - когда оно не выполнено.

I настоятельно предлагаю вам провести 30 минут, наблюдая за этими великолепными видеообъявлениями Blend VSM. http://expression.microsoft.com/en-ca/cc643423.aspx В частности, 7 минут видео в разделе «Add States to a Control».

Erwin van dar valk только что опубликовал отличную статью, демонстрирующую, как изменить состояния VSM от MVVM, что зависит от вашей ситуации. http://blogs.msdn.com/erwinvandervalk/archive/2009/10/12/how-to-work-with-animations-in-silverlight-in-the-mvvm-pattern.aspx

+0

Спасибо, что указал мне в правильном направлении. Я проверю ресурсы, которые вы рекомендуете. – DaveB

Смежные вопросы