/// <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; } }
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; }