コード例 #1
0
        /// <summary>
        ///     Show or hide the outer wheel. This change is animated.
        /// </summary>
        /// <remarks>
        ///     If you want to change the animation, you can do so using the storyboards
        ///     OpenStoryboard and CloseStoryboard as defined in RadialMenu.xaml.
        /// </remarks>
        public async void TogglePie()
        {
            var floatingParent = FindParent <Floating>(this);
            var distance       = Diameter / 2 - CenterButton.ActualHeight / 2;

            if (Pie.Visibility == Visibility.Visible)
            {
                BackgroundEllipse.Visibility = Visibility.Collapsed;

                await CloseStoryboard.PlayAsync();

                Pie.Visibility = Visibility.Collapsed;
                Width          = CenterButton.ActualWidth;
                Height         = CenterButton.ActualHeight;
                // Check if we're floating
                floatingParent?.ManipulateControlPosition(distance, distance, Width, Height);
                Canvas.SetTop(CenterButton, 0);
                Canvas.SetLeft(CenterButton, 0);
            }
            else
            {
                Width  = Diameter;
                Height = Diameter;
                // Check if we're floating
                floatingParent?.ManipulateControlPosition(-distance, -distance, Width, Height);
                Canvas.SetTop(CenterButton, Diameter / 2 - CenterButton.ActualHeight / 2);
                Canvas.SetLeft(CenterButton, Diameter / 2 - CenterButton.ActualWidth / 2);
                Pie.Visibility = Visibility.Visible;

                await OpenStoryboard.PlayAsync();

                BackgroundEllipse.Visibility = Visibility.Visible;
            }
        }