#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
есть (пожалуйста, опубликуйте это, если это вам не поможет)