2013-05-23 2 views
0

Я создал анимацию, которая запускает 400 миллисекунд, и прикрепляет ее к EventTrigger для LoadedRoutedEvent моего Window.Создание анимации для запуска при загрузке окна

Но я думаю, что окно не появляется сразу после его загрузки *, поэтому я вообще не вижу анимацию.

Каковы некоторые общие шаблоны для анимации при загрузке Window?

А также, когда следует запускать анимацию в отдельных потоках?

* Возможно, он рисует окно после его загрузки и показывает окно после его завершения, пояснение будет полезно.

+0

Хотите ли вы его в начале проблемы или при открытии конкретного окна в вашей программе? .NET предлагает настроить заставку. Анимация может просто быть анимированным gif. –

+0

Он будет запускаться как при загрузке, так и при изменении окна (или некоторого содержимого). Представьте себе, что анимация похожа на то, как она выглядит, когда вы запускаете Windows 8, так, как все плитки получают анимированные при переходе к Start. – hattenn

ответ

0

Я попытался решения, предложенные в следующем ответе:

https://stackoverflow.com/a/8886941/494094

  • Window.ContentRendered
  • UIElement.LayoutUpdated
  • Window.Activated

До сих пор, Window.Activated событие, кажется, SUI Лучше всего. Единственное ограничение в том, что ни одно из этих событий не RoutedEvent s, так что вам нужно определить анимации в код как следующее:

this.Activated += (sender, args) => ((Storyboard) FindResource("MyAnimation")).Begin(); 
0

400 Miliseconds довольно быстро, поэтому окно загрузки может занять больше времени. Я бы предложил сохранить его в том же потоке, но используя событие таймера. Timer Interval, чтобы задержать его, пока окно не будет полностью загружено.

Я использую события времени для экранов заставки и т. Д. ... и сделал бы то же самое, я уверен, для временной анимации. Это просто требует немного практики. Мое предложение состоит в том, чтобы использовать длительную задержку на время, чтобы убедиться, что он действует так, как вы хотите ... затем уменьшите таймер, чтобы поместить его туда, где вы хотите на экране загрузки.

+0

Нет ли лучшего способа узнать, когда экран полностью нарисован и виден на экране пользователя? – hattenn

+0

Вы можете попробовать использовать указанное событие: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.shown.aspx –

+0

Я использую WPF. – hattenn

Смежные вопросы