Своего рода быстрый вопрос: действительно ли возможно активировать состояние отображения от XAML? Я только смог активироваться один от CS, с помощью VisualStateManager. GotoState () метод. Это устранило бы некоторые мои проблемы MVVM, если бы это было легко возможно.
Спасибо
Если вы знакомы с поведением, триггерами и действиями Blend, существует GoToStateAction, который является частью пространства имен Microsoft.Expression.Interactivity.Core. Вам нужно будет указать интерактивные сборки, которые являются частью Blend SDK .
После того, как вы настроили ссылки, это так же просто, как указать GoToStateAction для реакции на какой-то триггер ... и все это в XAML. Вот пример, который запускает действие события Loaded с помощью EventTrigger:
<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:ic="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions">
<Grid x:Name="LayoutRoot">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<ic:GoToStateAction StateName="MyVisualState"/>
</i:EventTrigger>
</i:Interaction.Triggers>
...
</Grid>
</UserControl>
Дополнительная информация и руководство по конкретному действию GoToState здесь .
ИЗМЕНИТЬ : этот ответ относится к Silverlight, не уверен, что он доступен в WPF.