Состояния WPF/Silverlight - Активируются от XAML?

Своего рода быстрый вопрос: действительно ли возможно активировать состояние отображения от XAML? Я только смог активироваться один от CS, с помощью VisualStateManager. GotoState () метод. Это устранило бы некоторые мои проблемы MVVM, если бы это было легко возможно.

Спасибо

5
задан Peanut 24 May 2010 в 21:10
поделиться

1 ответ

Если вы знакомы с поведением, триггерами и действиями 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.

7
ответ дан 14 December 2019 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: