示例#1
0
        /// <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)));
        }
示例#2
0
        /// <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)));
                }
            }
        }
示例#3
0
        /// <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)));
            }
        }