private void ChangePopupType(LevelMenuButton button, bool isShow)
 {
     button.SonPopup.IsOpen = isShow;
     if (button.SonPanel.Children.Count > 0)
     {
         button.Arrow.Source = isShow == false ? Arrow.Source = OpenSource : CloseSource;
     }
     else
     {
         button.Arrow.Source = BlankSource;
     }
 }
Exemplo n.º 2
0
 public void CraeteMainButton(List <LevelMenuButtonMainItem> items)
 {
     if (CheckItemsValidation(items, 1) == 0)
     {
         MessageBox.Show("items不合法");
         return;
     }
     for (int i = 0; i < items.Count(); i++)
     {
         LevelMenuButton button = new LevelMenuButton(this);
         button.MainItem = items[i];
         ButtonGroup.Children.Add(button);
         SonButtons1.Add(button);
     }
 }
        private void CreateMainButton(LevelMenuButton mainButton, LevelMenuButtonMainItem item)
        {
            SonPopup.Placement = item.placementMode;
            Button.Content     = item.name;
            if (item.SonItems.Count() == 0)
            {
                Arrow.Source  = BlankSource;
                Button.Click += (s, e) =>
                {
                    foreach (var pp in Group.SonButtons1)
                    {
                        ChangePopupType(pp, false);
                    }
                    foreach (var pp in Group.SonButtons2)
                    {
                        ChangePopupType(pp, false);
                    }
                };
                if (item.OnClick != null & item.SonItems.Count() == 0)
                {
                    Button.Click += item.OnClick;
                }
            }
            else
            {
                Arrow.Source  = OpenSource;
                Button.Click += (s, e) =>
                {
                    if (item.placementMode == PlacementMode.Bottom)
                    {
                        if (SonPopup.IsOpen == false)
                        {
                            foreach (var pp in Group.SonButtons1)
                            {
                                ChangePopupType(pp, false);
                            }
                            foreach (var pp in Group.SonButtons2)
                            {
                                ChangePopupType(pp, false);
                            }
                            Arrow.Source = CloseSource;
                        }
                        else
                        {
                            Arrow.Source = OpenSource;
                        }
                    }
                    else if (item.placementMode == PlacementMode.Right)
                    {
                        if (SonPopup.IsOpen == false)
                        {
                            foreach (var pp in Group.SonButtons2)
                            {
                                ChangePopupType(pp, false);
                            }
                            Arrow.Source = CloseSource;
                        }
                        else
                        {
                            Arrow.Source = OpenSource;
                        }
                    }
                    SonPopup.IsOpen = SonPopup.IsOpen == true ? false : true;
                };

                MainPanel.MouseUp += (s, e) =>
                {
                    if (item.placementMode == PlacementMode.Bottom)
                    {
                        if (SonPopup.IsOpen == false)
                        {
                            foreach (var pp in Group.SonButtons1)
                            {
                                ChangePopupType(pp, false);
                            }
                            foreach (var pp in Group.SonButtons2)
                            {
                                ChangePopupType(pp, false);
                            }
                            Arrow.Source = CloseSource;
                        }
                        else
                        {
                            Arrow.Source = OpenSource;
                        }
                    }
                    else if (item.placementMode == PlacementMode.Right)
                    {
                        if (SonPopup.IsOpen == false)
                        {
                            foreach (var pp in Group.SonButtons2)
                            {
                                ChangePopupType(pp, false);
                            }
                            Arrow.Source = CloseSource;
                        }
                        else
                        {
                            Arrow.Source = OpenSource;
                        }
                    }
                    SonPopup.IsOpen = SonPopup.IsOpen == true ? false : true;
                };
            }

            foreach (var sonitem in item.SonItems)
            {
                LevelMenuButton newButton = new LevelMenuButton(Group);
                newButton.MainItem = sonitem;
                SonPanel.Children.Add(newButton);
                if (sonitem.placementMode == PlacementMode.Right)
                {
                    Group.SonButtons2.Add(newButton);
                }
            }
            //设置button样式
            if (item.placementMode == PlacementMode.Bottom)
            {
            }
        }