/// <summary> /// Добавляет окно в стек окон. В случае положительного флага, вызывает удаление предыдущего окна. /// </summary> /// <param name="window"></param> /// <param name="flag"></param> private static void Push(Window window, bool flag) { if (flag) { if (ViewStack.Count > 0) { Close(ViewStack.ElementAt(0)); Pop(); } } ViewStack.Push(window); }
/// <summary> /// Возвращает экземпляр текущего окна. /// </summary> /// <returns></returns> public static Window GetView() { return(ViewStack.ElementAt(0)); }
/// <summary> /// В зависимости от флага, либо закрывает предыдущее окно, /// либо делает видимым новое, но не затрагивает старое окно. /// </summary> /// <param name="window"></param> /// <param name="flag"></param> public static void OpenNewWindowInShow(Window window, bool flag) { Push(window, flag); ViewStack.ElementAt(0).ShowDialog(); }
/// <summary> /// Закрывает окно, с которым ведется работа. /// </summary> public static void CloseView() { Close(ViewStack.ElementAt(0)); Pop(); }
/// <summary> /// Открывает новое окно, закрывая предыдущее. /// </summary> /// <param name="window"></param> public static void OpenNewWindowInShowDialog(Window window) { Push(window, true); ViewStack.ElementAt(0).ShowDialog(); }