private void NewItem_SlectTabItemClickEvent(object sender, EventArgs e) { tgMenuBtn.IsChecked = false; RightContainer.SelectionChanged -= RightContainer_SelectionChanged; int maxCount = RightContainer.Items.Count; for (int i = 0; i < maxCount - 1; i++) { (RightContainer.Items[i] as TabItem).IsSelected = false; } var temp = RightContainer.Items[maxCount - 1] as TabItem; RightContainer.Items.Remove(temp); var obj = (sender as TabControlCollapseMenuModel).item; RightContainer.Items.Add(obj); obj.IsSelected = true; RightContainer.SelectionChanged += RightContainer_SelectionChanged; RightContainer_SelectionChanged(RightContainer, null); lstPopMenu.Remove(sender as TabControlCollapseMenuModel); var NewItem = new TabControlCollapseMenuModel { Name = temp.Name, Header = temp.Header.ToString(), item = temp }; NewItem.RemoveClickEvent += NewItem_RemoveClickEvent; NewItem.SlectTabItemClickEvent += NewItem_SlectTabItemClickEvent; lstPopMenu.Add(NewItem); LBTabMenu.ItemsSource = new List <TabControlCollapseMenuModel>(lstPopMenu); }
private void NewItem_RemoveClickEvent(object sender, EventArgs e) { TabControlCollapseMenuModel item = sender as TabControlCollapseMenuModel; lstPopMenu.Remove(item); LBTabMenu.ItemsSource = new List <TabControlCollapseMenuModel>(lstPopMenu); if (lstPopMenu.Count == 0) { tgMenuBtn.IsChecked = false; tgMenuBtn.Visibility = Visibility.Collapsed; } foreach (var obj in CollapseMenu) { if (obj == item.item) { CollapseMenu.Remove(obj); break; } } foreach (var obj in Items) { if (obj == item.item) { Items.Remove(obj); break; } } }
private void Xxx_ScrollChanged(object sender, ScrollChangedEventArgs e) { if (scrHead.ComputedHorizontalScrollBarVisibility != Visibility.Visible) { return; } for (int i = RightContainer.Items.Count - 1; i >= 0; i--) { var item = RightContainer.Items[i]; TabItem CurTabItem = (item as TabItem); if (CurTabItem.IsSelected) { continue; } else { //System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() => //{ if (CollapseMenu.IndexOf(item as TabItem) < 0) { RightContainer.Items.Remove(item); CollapseMenu.Add(item as TabItem); tgMenuBtn.Visibility = Visibility.Visible; if (lstPopMenu.Where(p => p.Name == CurTabItem.Name).Count() == 0) { var NewItem = new TabControlCollapseMenuModel { Name = CurTabItem.Name, Header = CurTabItem.Header.ToString(), item = CurTabItem }; NewItem.RemoveClickEvent += NewItem_RemoveClickEvent; NewItem.SlectTabItemClickEvent += NewItem_SlectTabItemClickEvent; lstPopMenu.Add(NewItem); } else { //System.Diagnostics.Debug.WriteLine("下拉表已经存在=" + CurTabItem.Name); } LBTabMenu.ItemsSource = new List <TabControlCollapseMenuModel>(lstPopMenu); break; } } } foreach (var item in RightContainer.Items) { var aaa = item; //System.Diagnostics.Debug.WriteLine("RightContainer=" + (item as TabItem).Header.ToString()); for (int i = lstPopMenu.Count - 1; i >= 0; i--) { if ((item as TabItem).Name == lstPopMenu[i].item.Name) { lstPopMenu.RemoveAt(i); LBTabMenu.ItemsSource = new List <TabControlCollapseMenuModel>(lstPopMenu); var a = CollapseMenu.Where(p => p.Header.ToString() == (item as TabItem).Header.ToString()).FirstOrDefault(); if (a != null) { CollapseMenu.Remove(a); } } } //foreach (var item2 in lstPopMenu) //{ // if (item == item2.item) // { // lstPopMenu.Remove(item2); // LBTabMenu.ItemsSource = new List<TabControlCollapseMenuModel>(lstPopMenu); // var a = CollapseMenu.Where(p => p.Header.ToString() == (item as TabItem).Header.ToString()).FirstOrDefault(); // if(a!=null) // { // CollapseMenu.Remove(a); // } // break; // } //} } }