Livetでの画面遷移でちらつかない方法
下記のコーディングで画面遷移しているのですが、window.Hide()
をしてから遷移しますので、
今のwindowが隠れる為に、なにもない状態となって、次に遷移先のwindowが開きます。
よってちらつきが発生してしまいます。
ちらつきの回避と思ってwindow.Hide()
を画面遷移後(Messenger.Raise()
の後)にすると
制御が戻っていない為に、遷移元のwindowも残ってしまいます。
遷移元のwindowが残らずに画面遷移する方法を教えて下さい。
// 現在の View のインスタンスを取得
var window = Application.Current.Windows.OfType<Window>().SingleOrDefault((w) => w.IsActive);
try
{
// 現在の View を非表示
window.Hide();
// View にメッセージを送信~子画面をモーダルで起動
Messenger.Raise(new TransitionMessage(new
ViewModel2(),ShowCommand2"));
}
finally
{
// View を再表示する
window.ShowDialog();
}