0

アプリ起動時にメッセージボックスを表示したい。
最初の画面の方法を使用OnActivatedして、モーダルダイアログを表示しました。

それはうまくいきました。また、ユーザーが[OK]を押さずにアプリを非アクティブ化した場合は正常に機能しました。アプリを再度アクティブ化した後、新しいmessageBoxものが表示されました。完全。

しかし、問題は、アプリが完全に初期化されておらず、5秒または10秒待った後にOSがアプリを強制終了したことでした。

OnViewLoadedイベントを使ってみました。ただし、このイベントは、画面がであるたびに発生するわけではありませんnavigatedTo

フォームがナビゲートされるたびに、少し後で(OnViewLoadedイベントのように)イベントを発生させることはできますか?

また

OSはどの時点でタイムアウトタイマーを停止しますか?私が見るようにOnNavigated、モーダルダイアログを表示することは禁止されていますが、Loadedハンドラーでは-すでに可能です

4

1 に答える 1

0

迅速な自己回答でごめんなさい。突然小さなハックを発見しました。

私はそのようなOnNavigatedToメソッドをovverridenしました

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    base.InvalidateMeasure();
}

そして、CaliburnsOnViewReadyメソッドでMessageBoxを表示します。

結果として

  1. 10秒を超える読み込み時間でアプリがOSによって強制終了されることはありません。
  2. メッセージボックスは、deactivate-dorment-activateサイクルの後に再表示されます。
于 2012-07-23T14:21:02.320 に答える