/// <summary> /// Event handler for a pointer press (mouse, touch, stylus) on the inner arc of the PieSlice /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void innerPieSlicePath_PointerPressed(object sender, PointerRoutedEventArgs e) { if (OriginalRadialMenuButton.Type == RadialMenuButton.ButtonType.Custom) { CustomTextBox.Focus(FocusState.Keyboard); CustomTextBox.SelectAll(); e.Handled = true; } else { VisualStateManager.GoToState(this, "InnerPressed", true); OriginalRadialMenuButton.OnInnerArcPressed(e); switch (OriginalRadialMenuButton.Type) { case RadialMenuButton.ButtonType.Toggle: VisualStateManager.GoToState(this, (OriginalRadialMenuButton.Value != null && ((bool)OriginalRadialMenuButton.Value)) ? "InnerReleased" : "InnerNormal", true); break; case RadialMenuButton.ButtonType.Radio: VisualStateManager.GoToState(this, "InnerReleased", true); // get all other menus to release now that this menu has been selected ChangeSelectedEvent?.Invoke(sender, this); break; default: VisualStateManager.GoToState(this, "InnerNormal", true); break; } } }
/// <summary> /// Event handler for a pointer release (mouse, touch, stylus) on the inner arc of the PieSlice /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void innerPieSlicePath_PointerReleased(object sender, PointerRoutedEventArgs e) { OriginalRadialMenuButton.OnInnerArcReleased(e); switch (OriginalRadialMenuButton.Type) { case RadialMenuButton.ButtonType.Toggle: VisualStateManager.GoToState(this, (OriginalRadialMenuButton.Value != null && ((bool)OriginalRadialMenuButton.Value)) ? "InnerReleased" : "InnerNormal", true); break; case RadialMenuButton.ButtonType.Radio: VisualStateManager.GoToState(this, "InnerReleased", true); // get all other menus to release now that this menu has been selected ChangeSelectedEvent?.Invoke(sender, this); break; default: VisualStateManager.GoToState(this, "InnerNormal", true); break; } }