/// <summary>
        /// レイアウト削除
        /// </summary>
        private void DeleteLayout(LayoutMenuItem menuItem)
        {
            var result = LocalizedMessageBox.Show("Lang:DeleteLayoutConfirmMessage", "Lang:Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No, menuItem.LayoutName);

            if (result == MessageBoxResult.Yes)
            {
                SettingDatabase.Instance.ExecQuery($"DELETE FROM WorkAreaLayouts WHERE LayoutID = {menuItem.LayoutID}");
                Layouts.Remove(menuItem);
                _ActiveLayout.Value = null;
            }
        }
        /// <summary>
        /// プリセットが選択された場合、他のチェックを全部外す
        /// </summary>
        /// <param name="menuItem">選択されたプリセット</param>
        private void ExclusiveChecked(LayoutMenuItem menuItem)
        {
            if (menuItem.IsChecked.Value)
            {
                foreach (var layout in Layouts.Where(x => x != menuItem))
                {
                    layout.IsChecked.Value = false;
                }

                _ActiveLayout.Value = menuItem;
            }
        }
        /// <summary>
        /// レイアウト名変更
        /// </summary>
        private void EditLayoutName(LayoutMenuItem menuItem)
        {
            var(onOK, newLayoutName) = SelectStringDialog.ShowDialog("Lang:EditLayoutName", "Lang:LayoutName", menuItem.LayoutName.Value, IsValidLayoutName);
            if (onOK && menuItem.LayoutName.Value != newLayoutName)
            {
                menuItem.LayoutName.Value = newLayoutName;

                var param = new SQLiteCommandParameters(2);
                param.Add("layoutName", System.Data.DbType.String, menuItem.LayoutName.Value);
                param.Add("layoutID", System.Data.DbType.Int32, menuItem.LayoutID);
                SettingDatabase.Instance.ExecQuery($"UPDATE WorkAreaLayouts SET LayoutName = :layoutName WHERE LayoutID = :layoutID", param);
            }
        }
        /// <summary>
        /// レイアウト上書き保存
        /// </summary>
        /// <param name="menuItem">上書きするレイアウト</param>
        private void OverwritedSaveLayout(LayoutMenuItem menuItem)
        {
            if (_WorkAreaManager.ActiveContent == null)
            {
                return;
            }

            try
            {
                SettingDatabase.Instance.BeginTransaction();
                _WorkAreaManager.ActiveContent.OverwriteSaveLayout(menuItem.LayoutID);
                SettingDatabase.Instance.Commit();

                LocalizedMessageBox.Show("Lang:LayoutOverwritedMessage", "Lang:Confirmation", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, _WorkAreaManager.ActiveContent.Title, menuItem.LayoutName);
            }
            catch (Exception ex)
            {
                SettingDatabase.Instance.Rollback();
                LocalizedMessageBox.Show("Lang:LayoutOverwriteFailedMessage", "Lang:Error", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, ex.Message);
            }
        }