示例#1
0
        /// <summary>
        /// Drag  TabItem
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TabItem_MouseEnter(object sender, MouseEventArgs e)
        {
            TabItem tab1 = sender as TabItem;

            if (e.LeftButton == MouseButtonState.Pressed)
            {
                if (_tab_Dragging == null)
                {
                    return;
                }
                if (tab1 == _tabItem_Add)
                {
                    return;
                }
                //
                if (tab1 != _tab_Dragging)
                {
                    int index1 = _tabItems.IndexOf(tab1);
                    _tabItems.Remove(_tab_Dragging);
                    _tabItems.Insert(index1, _tab_Dragging);
                    tabControl.Items.Refresh();
                    _tabItems_SearchLog.Remove(_tab_Dragging);
                    _tabItems_SearchLog.Insert(index1, _tab_Dragging);
                    //
                    SearchLogTabItem slti1 = (SearchLogTabItem)tab1.Content;
                    slti1.tabInfo.tabOrder = _tabItems.IndexOf(tab1) + 1;
                    SearchLogTabItem slti2 = (SearchLogTabItem)_tab_Dragging.Content;
                    slti2.tabInfo.tabOrder = _tabItems.IndexOf(_tab_Dragging) + 1;
                    _db_SearchLogTab.update(
                        new List <SearchLogTabInfo>()
                    {
                        slti1.tabInfo, slti2.tabInfo
                    });
                }
            }
            else if (_tab_Dragging != null)
            {
                _tab_Dragging = null;
            }
        }
示例#2
0
        void addSearchLogTabItem(List <SearchLogTabInfo> tabInfoList0, int selectedIndex0 = -1)
        {
            if (tabInfoList0.Count == 0)
            {
                return;
            }
            //
            foreach (var tabInfo1 in tabInfoList0)
            {
                SearchLogTabItem searchLogTab1 = new SearchLogTabItem()
                {
                    searchLogView = this,
                    tabInfo       = tabInfo1,
                    tabItems      = _tabItems_SearchLog,
                    db_SearchLog  = _db_SearchLog,
                    db_RecLog     = _recLogView.db_RecLog
                };
                _searchLogTabs.Add(searchLogTab1);
                //
                TabItem tab1 = new TabItem()
                {
                    Header = " " + tabInfo1.header + " ",
                };
                tab1.PreviewMouseDown += TabItem_PreviewMouseDown;
                tab1.MouseEnter       += TabItem_MouseEnter;
                tab1.ContextMenu       = new ContextMenu();
                MenuItem menu_Header1 = new MenuItem();
                menu_Header1.Header = "ヘッダを変更(_C)";
                menu_Header1.Click += delegate
                {
                    searchLogTab1.showTagHeaderEditor();
                };
                tab1.ContextMenu.Items.Add(menu_Header1);
                //
                MenuItem menu_DeleteTab1 = new MenuItem();
                menu_DeleteTab1.Header = "タブを削除(_D)";
                menu_DeleteTab1.Click += delegate
                {
                    if (_searchLogTabs.Count == 1)
                    {
                        MessageBox.Show("最後の1つは削除できません。");
                        return;
                    }
                    else if (MessageBox.Show("タブに登録した全データが削除されます。\nよろしいですか?", "タブの削除", MessageBoxButton.OKCancel, MessageBoxImage.Exclamation, MessageBoxResult.Cancel) == MessageBoxResult.OK)
                    {
                        searchLogTab1.deleteSearchLogItem_All();
                        _db_SearchLogTab.delete(searchLogTab1.tabInfo.ID);
                        _searchLogTabs.Remove(searchLogTab1);
                        _tabItems.Remove(tab1);
                        _tabItems_SearchLog.Remove(tab1);
                        tabControl.Items.Refresh();
                        tabControl.SelectedIndex = _tabItems.Count - 2;
                    }
                };
                tab1.ContextMenu.Items.Add(menu_DeleteTab1);

                tab1.Content = searchLogTab1;
                _tabItems.Insert(_tabItems.Count - 1, tab1);
                _tabItems_SearchLog.Add(tab1);
                //
                searchLogTab1.tabHeaderChanged += delegate
                {
                    tab1.Header = " " + searchLogTab1.tabInfo.header + " ";
                    _db_SearchLogTab.update(searchLogTab1.tabInfo);
                };
            }
            //
            if (selectedIndex0 < 0)
            {
                selectedIndex0 = _tabItems.Count - 2;
            }
            tabControl.SelectedIndex = selectedIndex0;
        }