фона:WPF Animation не оживляет. (Начальный экран)
Я пытаюсь добавить анимацию в окно всплеска экрана в моем проекте WPF. (Не использовать фактический элемент управления SplashScreen.) Я использую окно.)
Причина моего внедрения в заставку - есть небольшая задержка при открытии приложения из-за загрузки данных. Очевидно, что целью заставки является помощь пользователю, поэтому пользователь знает, что приложение выполнено.
Вот идея моего нынешнего подхода:
- Инстанцировать окно SplashScreen в начале конструктора.
- Вызывается InitializeComponent().
- Закройте окно заставки.
К сожалению, анимация в заставке не начинается до тех пор, пока не вызывается метод InitializeComponent() главного родительского окна; это происходит в основном, когда я ХОЧУ закрыть окно всплывающего окна в любом случае. Следовательно, анимация бесполезна и не начинается, пока не стало слишком поздно.
Мой вопрос:
Почему это не анимировать, пока называется InitializeComponent()?
Моя нынешняя теория, почему это происходит, состоит в том, что это связано с тем, что экран всплеска открывается в основном потоке пользовательского интерфейса. Я прав?
Есть ли какие-либо обходные пути, которые не связаны с захватом управления программой и нерест заставки в новом потоке? (Я не хочу решения, которое хак)
И да, я просматривать этот сайт довольно долго и не удались найти жизнеспособное решение.
Почему вы считаете создание экрана Splash в другом потоке хаком? это не. Это на самом деле единственное решение, которое у вас есть, когда ваш пользовательский интерфейс тяжелый, и для загрузки требуется время. –
В любом случае, вы должны убедиться, что сначала загружаете свои данные в фоновый поток, что может облегчить поток пользовательского интерфейса и позволить вам отображать заставку на некоторое время, пока данные не будут готовы, по крайней мере. –
Причина, по которой она не анимируется, заключается в том, что поток пользовательского интерфейса занят своими делами и не имеет времени для анимации. Освободите поток пользовательского интерфейса или создайте экран Splash в другом потоке. –