コード例 #1
0
        private void OnViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (Property.NameEquals(e.PropertyName, () => ViewModel.IsOpen))
            {
                var frame = Bootstrapper.PhoneFrame;
                if (frame != null)
                {
                    var currentPage = frame.Content as PhoneApplicationPage;
                    if (currentPage != null && currentPage.ApplicationBar != null)
                    {
                        currentPage.ApplicationBar.IsVisible = !ViewModel.IsOpen;
                    }
                }

                if (ViewModel.IsOpen)
                {
                    OpenContactItem.Visibility = ViewModel.OpenContactVisibility;
                    OpenStoryboard.Begin();
                }
                else
                {
                    CloseStoryboard.Begin();
                }
            }
        }
コード例 #2
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;
            }
        }
コード例 #3
0
 private void OnViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (Property.NameEquals(e.PropertyName, () => ViewModel.IsOpen))
     {
         if (!ViewModel.IsOpen)
         {
             CloseStoryboard.Begin();
         }
     }
 }
コード例 #4
0
 private void OnViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (Property.NameEquals(e.PropertyName, () => ViewModel.IsOpen))
     {
         if (ViewModel.IsOpen)
         {
             OpenStoryboard.Begin();
         }
         else
         {
             ViewModel.Hints.Clear();
             Telegram.Api.Helpers.Execute.BeginOnUIThread(() =>
             {
                 CloseStoryboard.Begin();
             });
         }
     }
 }
コード例 #5
0
 private void OnViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (Property.NameEquals(e.PropertyName, () => ViewModel.IsOpen))
     {
         if (ViewModel.IsOpen)
         {
             OpenContactItem.Visibility = ViewModel.OpenContactVisibility;
             OpenStoryboard.Begin();
         }
         else
         {
             if (ViewModel.InlineBots.Count > 0 && ContentPanelTransform.Y == 140.0)
             {
                 InlineBotsControl.Opacity = 0.0;
             }
             CloseStoryboard.Begin();
         }
     }
 }
コード例 #6
0
 private void _4_Tap(object sender, System.Windows.Input.GestureEventArgs e)
 {
     CloseStoryboard.Begin();
 }
コード例 #7
0
 public void Close()
 {
     CloseStoryboard.Begin();
     Closed?.Invoke();
 }
コード例 #8
0
        public void Close(Action callback = null)
        {
            _closeCallback = callback;

            CloseStoryboard.Begin();
        }