public async void SetPage(string value, string arg) { Page = value; PageName.Content = TryFindResource("@" + Page); if (value != null) { if (_pages.Count == 0) { _pages.Add(value); Frames.BeginAnimation(FrameworkElement.WidthProperty, null); Frames.BeginAnimation(FrameworkElement.HeightProperty, null); Frame.Margin = new Thickness(0); Frame.NavigationService.Navigate(new Uri(@"Data\Controls\Menu\Pages\" + Page + ".xaml", UriKind.Relative)); await Task.Delay(1); if (value == "Settings") { await Task.Delay(1); var c = (MenuPages.Settings)Frame.Content; c.SetPage(arg); } if (value == "SelectedDialog") { /*await Task.Delay(1); * var c = (MenuPages.Settings)Frame.Content; * c.SetPage(arg);*/ } var content = (Page)Frame.Content; Frames.Width = content.Width; Frames.Height = content.Height; return; } if (_pages.Count > 0) { IsHitTestVisible = false; _pages.Add(value); Frame.Margin = new Thickness((Frame.ActualWidth / 2), 0, -(Frame.ActualWidth / 2), 0); Frame.Opacity = 0; var Frame2 = new Frame { Margin = new Thickness(0), Content = Frame.Content, Name = _pages.ElementAt(_pages.Count - 2), IsHitTestVisible = false }; Frames.Children.Add(Frame2); Frame.NavigationService.Navigate(new Uri(@"Data\Controls\Menu\Pages\" + Page + ".xaml", UriKind.Relative)); await Task.Delay(1); var content = (Page)Frame.Content; Animate.Opacity(Frame, 1, 200); Animate.Opacity(Frame2, 0, 200); Animate.Margin(Frame2, new Thickness(-(Frame.ActualWidth / 2), 0, (Frame.ActualWidth / 2), 0), 200); Animate.Margin(Frame, new Thickness(0), 200); await Animate.Size(Frames, content.Width, content.Height); IsHitTestVisible = true; } } else { Frame.NavigationService.Navigate(null); _pages.Clear(); } }