Запуск раскадровки при загруженном событии в silverlight

#silverlight #prism

#silverlight #prism

Вопрос:

Я смотрю на RI биржевого трейдера Prism и вижу, что раскадровка перехода воспроизводится с использованием кода. Я попробовал следующий xaml:

 <Пользовательский контроль.Запускает>
 <EventTrigger RoutedEvent="Пользовательский контроль.Загружено">
 <BeginStoryboard Storyboard="{StaticResource InTransition}"/>
 <EventTrigger>
 </UserControl.Запускает>

Но это выдает следующую ошибку при инициализации компонента (т. Е. Исключение XamlParseException):
введите описание изображения здесь

есть идеи, почему?

Ответ №1:

Я думаю, что триггеры недоступны в Silverlight.

Вы можете использовать поведение ControlStoryboardAction для вызова раскадровки в xaml, например, следующим образом (вам понадобится Microsoft.Expression.Взаимодействия.библиотека dll и система.Windows.Interactivity.dll ),

 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" 

<i:Interaction.Triggers>
    <i:EventTrigger EventName="Loaded">
        <ei:ControlStoryboardAction Storyboard="{StaticResource InTransition}"/>
    </i:EventTrigger>
</i:Interaction.Triggers>
  

Примечание: вы можете удалить eventName=’Loaded’, поскольку ‘Loaded’ является событием по умолчанию для этого элемента управления.

Комментарии:

1. 1 Абсолютно верно, триггеры — это концепция WPF. Приложение StockTrader RI, упомянутое OP, действительно является WPF. Поведение ControlStoryBoardAction — это правильный путь для Silverlight.

Ответ №2:

Обычно для таких ошибок существует внутреннее исключение. Пожалуйста, выполните «Просмотр деталей» и проверьте это для нас.

Ошибка обычно означает, что не удалось правильно разрешить ресурс, поэтому вам может потребоваться посмотреть, что InTransition есть (пожалуйста, опубликуйте это, если это вам не поможет)