/// <summary>表示中のサブWindowを取得する</summary> /// <param name="windowName"></param> /// <returns></returns> internal static Window GetSubWindow(Define.SubWindowName windowName) { if (_displaySubWindowList == null || _displaySubWindowList.Any() == false) { return(null); } return(_displaySubWindowList.Find(w => w.SubWindowName == windowName).Window); }
/// <summary>対象のウィンドウを閉じる</summary> /// <param name="targetWindow"></param> internal static void CloseSubWindow(Define.SubWindowName targetWindow) { if (_displaySubWindowList.Any(w => w.SubWindowName == targetWindow) == false) { // 管理外ならなにもしない return; } SubWindowData targetWindowData = _displaySubWindowList.Find(w => w.SubWindowName == targetWindow); if (targetWindowData.Window != null) { _displaySubWindowList.Remove(targetWindowData); targetWindowData.Window.Close(); } }
/// <summary>指定されたサブウィンドウの生成を行う</summary> /// <param name="subWindowName">対象のウィンドウ名</param> internal static void OpenSubWindow(Define.SubWindowName subWindowName) { switch (subWindowName) { case Define.SubWindowName.SynonymWindow: CreateSynonymWindow(); break; case Define.SubWindowName.SettingWindow: CreateSettingWindow(); break; default: // 想定していないSubWindow名が来ることはあり得ず、対処不能 Logger.Fatal(CLASS_NAME, "OpenSubWindow", $"SubWindowName is incorrect! subWindowName:[{subWindowName}]"); break; } }
internal SubWindowData(Window window, Define.SubWindowName subWindowName) { Window = window; SubWindowName = subWindowName; }