private void HandleOptionClicked(RadialMenuItem item, Enumerations.Enumerations.RadialMenuLocation value) { item.GestureRecognizers.Clear(); item.GestureRecognizers.Add(new TapGestureRecognizer() { Command = new Command(async() => { ParentInBackgroundItem = item; ItemTapped?.Invoke(this, value); if (item.ChildItems?.Count > 0) { IsChildItemOpened = true; await HideButtons(ParentInBackgroundItem.ChildItems); CloseMenu(item);//Navigate to submenu } else { IsOpened = false; IsChildItemOpened = false; CloseMenu(); } }), NumberOfTapsRequired = 1 }); }
private void HandleOptionClicked(RadialMenuItem item, Enumerations.Enumerations.RadialMenuLocation value) { item.GestureRecognizers.Add(new TapGestureRecognizer() { Command = new Command(() => { ItemTapped?.Invoke(this, value); CloseMenu(); }), NumberOfTapsRequired = 1 }); }
private void HandleChildOptionClicked(RadialMenuItem parentItem, Enumerations.Enumerations.RadialMenuLocation value) { parentItem.GestureRecognizers.Clear(); parentItem.GestureRecognizers.Add(new TapGestureRecognizer() { Command = new Command(async() => { //IsOpened = false; ChildItemTapped?.Invoke(this, new Models.ChildItemTapped() { Parent = ParentInBackgroundItem, ItemTapped = value }); if (CloseMenuWhenChildTapped) { IsOpened = false; IsChildItemOpened = false; if (!_isAnimating) { _isAnimating = true; InnerButtonMenu.IsVisible = true; InnerButtonClose.IsVisible = false; BackButton.IsVisible = true; await HideButtons(ParentInBackgroundItem.ChildItems); InnerButtonClose.RotateTo(0, _animationDelay); InnerButtonClose.FadeTo(0, _animationDelay); BackButton.RotateTo(0, _animationDelay); BackButton.FadeTo(0, _animationDelay); InnerButtonMenu.RotateTo(0, _animationDelay); InnerButtonMenu.FadeTo(1, _animationDelay); ClearGridButtons(); await OuterCircle.ScaleTo(1, (uint)MenuCloseAnimationDuration, MenuCloseEasing); InnerButtonClose.IsVisible = false; BackButton.IsVisible = false; BackButton.GestureRecognizers.Clear(); InnerButtonMenu.GestureRecognizers.Clear(); InnerButtonClose.GestureRecognizers.Clear(); HandleMenuCenterClicked(); HandleCloseClicked(); foreach (var i in MenuItemsSource) { var item = i as RadialMenuItem; //OrganizeItem(item); mainGrid.Children.Add(item); //HandleOptionClicked(item, item.Location); } _isAnimating = false; } } else { GoBack(); } }), NumberOfTapsRequired = 1 }); }