/// <summary> /// レイアウトを復元する /// </summary> private void RestoreLayout() { // レイアウトIDが指定されていればレイアウト設定 if (0 <= _LayoutID) { SetLayout(_LayoutID); // 1回ロードしたので次回以降ロードしないようにする _LayoutID = -1; return; } if (_CurrentDockingManager == null) { return; } // 前回レイアウトがあれば、レイアウト復元 if (_Layout != null) { var serializer = new XmlLayoutSerializer(_CurrentDockingManager); using var ms = new MemoryStream(_Layout, false); using var ms2 = new MemoryStream(SetTitle(ms), false); serializer.Deserialize(ms2); } // 表示メニューを初期化 VisiblityMenuItems.Reset(_CurrentDockingManager.Layout.Descendents().OfType <LayoutAnchorable>().Select(x => new VisiblityMenuItem(x))); }
/// <summary> /// 言語変更時 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Instance_PropertyChanged(object?sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == nameof(LocalizeDictionary.Instance.Culture) && _CurrentDockingManager != null) { var serializer = new XmlLayoutSerializer(_CurrentDockingManager); var layout = GetCurrentLayout(); if (layout != null) { using var ms = new MemoryStream(layout, false); using var ms2 = new MemoryStream(SetTitle(ms), false); serializer.Deserialize(ms2); // 表示メニューを初期化 VisiblityMenuItems.Reset(_CurrentDockingManager.Layout.Descendents().OfType <LayoutAnchorable>().Select(x => new VisiblityMenuItem(x))); } } }
/// <summary> /// レイアウトを設定 /// </summary> /// <param name="layoutID"></param> public void SetLayout(long layoutID) { _LayoutID = layoutID; _Layout = SettingDatabase.Instance.QuerySingle <byte[]>("SELECT Layout FROM WorkAreaLayouts WHERE LayoutID = :layoutID", new { layoutID }); if (_Layout != null && _CurrentDockingManager != null) { var serializer = new XmlLayoutSerializer(_CurrentDockingManager); using var ms = new MemoryStream(_Layout, false); using var ms2 = new MemoryStream(SetTitle(ms), false); serializer.Deserialize(ms2); } // 表示メニューを初期化 if (_CurrentDockingManager != null) { VisiblityMenuItems.Reset(_CurrentDockingManager.Layout.Descendents().OfType <LayoutAnchorable>().Select(x => new VisiblityMenuItem(x))); } }