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; } }
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) { } }