/// <summary> /// Stops running this <see cref="Toplevel"/>. /// </summary> public virtual void RequestStop() { if (IsMdiContainer && Running && (Application.Current == this || Application.Current?.Modal == false || Application.Current?.Modal == true && Application.Current?.Running == false)) { foreach (var child in Application.MdiChildes) { var ev = new ToplevelClosingEventArgs(this); if (child.OnClosing(ev)) { return; } child.Running = false; Application.RequestStop(child); } Running = false; Application.RequestStop(this); } else if (IsMdiContainer && Running && Application.Current?.Modal == true && Application.Current?.Running == true) { var ev = new ToplevelClosingEventArgs(Application.Current); if (OnClosing(ev)) { return; } Application.RequestStop(Application.Current); } else if (!IsMdiContainer && Running && (!Modal || (Modal && Application.Current != this))) { var ev = new ToplevelClosingEventArgs(this); if (OnClosing(ev)) { return; } Running = false; Application.RequestStop(this); } else { Application.RequestStop(Application.Current); } }
internal virtual bool OnClosing(ToplevelClosingEventArgs ev) { Closing?.Invoke(ev); return(ev.Cancel); }
private void Container_Closing(ToplevelClosingEventArgs obj) { Hide(); }