Ejemplo n.º 1
0
        /// <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;
                }
            }
        }
Ejemplo n.º 2
0
        /// <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;
            }
        }