Я заметил что у меня долго перерисовывается форма.
Т.е. когда я перехожу от одной формы к другой — программа как бы зависает на несколько сек. (в зависимости от "сложности" формы — от 3 до 10 сек.)
И только через это время показывается нужная форма.
На это время я хочу показать красивую анимационную форму "Please Wait"
Которая показывалась бы перед началом перерисовки формы и пряталась бы после окончательной перерисовки.
В идеале — как только "Please Wait" прячется — тут же (без лишних задержек) должна показаться новая форма. Ну или сначала показаться форма — а потом спрятаться "Please Wait". Можно и так.
Непонятно одно. Когда вызывать Show/Hide "Please Wait" ???
у меня есть основная форма
mainView с фреймом. Туда через
mainView.frMain.Navigate(aPage);
загружается нужная форма (
aPage).
Я заметил, что после этого вызова
mainView.frMain.Navigate(aPage);
проходит какое-то время ДО того как вызовется метод (в *.xaml.cs)
private void mainRoot_Loaded(object sender, System.Windows.RoutedEventArgs e)
где
mainRoot это корневой Grid на форме (
aPage), которая загружается
затем, когда
private void mainRoot_Loaded(object sender, System.Windows.RoutedEventArgs e)
отработает — снова какая-то задержка в несколько секунд — и только после этого форма показывается на экране.
Подскажите, КОГДА мне нужно вызывать Show/Hide "Please Wait" ???
Как узнать что форма полностью перерисовалась?
Спасибо!
Здравствуйте, AHgpeu, Вы писали:
AH>Я заметил что у меня долго перерисовывается форма.
AH>Т.е. когда я перехожу от одной формы к другой — программа как бы зависает на несколько сек. (в зависимости от "сложности" формы — от 3 до 10 сек.)
AH>И только через это время показывается нужная форма.
AH>На это время я хочу показать красивую анимационную форму "Please Wait"
AH>Которая показывалась бы перед началом перерисовки формы и пряталась бы после окончательной перерисовки.
AH>В идеале — как только "Please Wait" прячется — тут же (без лишних задержек) должна показаться новая форма. Ну или сначала показаться форма — а потом спрятаться "Please Wait". Можно и так.
AH>Непонятно одно. Когда вызывать Show/Hide "Please Wait" ???
AH>у меня есть основная форма mainView с фреймом. Туда через
AH>mainView.frMain.Navigate(aPage);
AH>загружается нужная форма (aPage).
AH>Я заметил, что после этого вызова
AH>mainView.frMain.Navigate(aPage);
AH>проходит какое-то время ДО того как вызовется метод (в *.xaml.cs)
AH>private void mainRoot_Loaded(object sender, System.Windows.RoutedEventArgs e)
AH>где mainRoot это корневой Grid на форме (aPage), которая загружается
AH>затем, когда
AH>private void mainRoot_Loaded(object sender, System.Windows.RoutedEventArgs e)
AH>отработает — снова какая-то задержка в несколько секунд — и только после этого форма показывается на экране.
AH>Подскажите, КОГДА мне нужно вызывать Show/Hide "Please Wait" ???
AH>Как узнать что форма полностью перерисовалась?
AH>Спасибо!
Ну скорее всего дело не в долгой перерисовке, а в долгой обработке данных.
начало, наверное, по событию Frame.Navigating:
http://msdn.microsoft.com/en-us/library/system.windows.controls.frame.navigating.aspx
Вообще, посмотрите на события класса Frame, там же все есть, даже NavigationProgress. Только показать это в каком-нибудь статус-баре