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

                //}
            }
        }