В моем приложении silverlight определены две анимации:
<Storyboard x:Name="ShowControls">
<DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="SlideOutMenu" />
</Storyboard>
<Storyboard x:Name="Hide-Controls">
<DoubleAnimation Duration="0:0:0.2" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="SlideOutMenu" />
</Storyboard>
Когда эти раскадровки определены во внешнем файле стилей xaml, они не работают. Я не смог выяснить, почему я не могу программно получить доступ к этим ресурсам.
Этот код работает для других типов ресурсов, таких как кисти и шаблоны, так что ... Я подозреваю, что эта проблема со словарем ресурсов относится только к ресурсам типа Storyboard.
Это код, который выдает ошибку:
(SlideOutMenu - пограничный контроль).
public void AddEventHandlers()
{
SlideOutMenu.MouseEnter += new MouseEventHandler(SlideOutMenu_MouseEnter);
SlideOutMenu.MouseLeave += new MouseEventHandler(SlideOutMenu_MouseLeave);
}
public void SlideOutMenu_MouseEnter(object sender, MouseEventArgs e)
{
Storyboard showMenu = Application.Current.Resources["ShowControls"] as Storyboard;
showMenu.Begin();
}
Есть идеи?