/// <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; } }