protected override void OnApplyTemplate() { base.OnApplyTemplate(); marker = GetTemplateChild("PART_Marker") as ContentPresenter; // Make sure ManipulationMode="All" for the graphic drawn in the DataTemplate marker.ManipulationDelta += marker_ManipulationDelta; }
void Switch(int index, ContentPresenter frame) { switch (index) { case 0: if (!(frame.Content is AllVideosPivotItem)) frame.Content = new AllVideosPivotItem(); break; case 1: if (!(frame.Content is ShowsPivotItem)) frame.Content = new ShowsPivotItem(); break; case 2: if (!(frame.Content is CameraRollPivotItem)) frame.Content = new CameraRollPivotItem(); break; case 3: if (frame.Content is SearchVideoPage) { Switch((int)Locator.SettingsVM.VideoView, frame); Locator.VideoLibraryVM.SearchTag = ""; } else frame.Content = new SearchVideoPage(); break; } }
public MainPage() { VerifToken(); SettingsPane.GetForCurrentView().CommandsRequested -= _CommandsRequested; this.InitializeComponent(); this.ChangeCalendar.Content = IConstantes.BUTTON_SWITCH_CALENDAR; this.Day.Content = IConstantes.BUTTON_DAY; this.Week.Content = IConstantes.BUTTON_WEEK; this.Month.Content = IConstantes.BUTTON_MONTH; _dateMain = DateTime.Now; icalendar = new WeekBorderCalendar(ref _dateMain); contenuPage.Content = icalendar; contentPage = contenuPage; ObservableCollection<object> list = new ObservableCollection<object>(); this._calendars = list.ToObservableVector<object>(); if (first) { SettingsPane.GetForCurrentView().CommandsRequested += _CommandsRequested; first = false; } }
internal DataGridRow(DataGrid dataGrid, object item) { Item = item; DataGrid = dataGrid; var x = 0; var hasStar = false; foreach (var c in dataGrid.Columns) { var cell = c.GenerateElement(item); var content = new ContentPresenter(); content.Content = cell.Control; content.Margin = new Thickness(10, 0, 0, 5); content.Tag = cell; SetColumn(content, x++); Children.Add(content); var def = c.CreateGridColumnDefinition(); hasStar = hasStar || def.Width.IsStar; ColumnDefinitions.Add(def); } if (!hasStar) ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); // second row used for details view RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); content = (ContentPresenter)GetTemplateChild("content"); content.Content = Content; }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); _backButton = GetTemplateChild("backButton") as AppBarButton; if (_backButton != null) { _backButton.Click += OnBackClicked; } _presenter = GetTemplateChild("presenter") as Windows.UI.Xaml.Controls.ContentPresenter; _commandBar = GetTemplateChild("CommandBar") as CommandBar; #if WINDOWS_UWP _bottomCommandBarArea = GetTemplateChild("BottomCommandBarArea") as Border; _topCommandBarArea = GetTemplateChild("TopCommandBarArea") as Border; if (_commandBar != null && _bottomCommandBarArea != null && _topCommandBarArea != null) { // We have to wait for the command bar to load so that it'll be in the control hierarchy // otherwise we can't properly move it to wherever the toolbar is supposed to be _commandBar.Loaded += (sender, args) => UpdateToolbarPlacement(); } #endif TaskCompletionSource <CommandBar> tcs = _commandBarTcs; tcs?.SetResult(_commandBar); }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); _contentPresenter = GetTemplateChild("PART_ContentPresenter") as ContentPresenter; OnShowChanged(); }
public void Put(ContentPresenter cp) { if (cp == null) System.Diagnostics.Debugger.Break(); Canvas.SetTop(cp, -1000); cp.Content = null; _cpList.Enqueue(cp); }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); _contentPresenter = GetTemplateChild("ContentPresenter") as WContentPresenter; UpdateBackgroundColor(); UpdateBorderRadius(); }
protected override void OnApplyTemplate() { _content = base.GetTemplateChild("content") as ContentPresenter; _clip = base.GetTemplateChild("clip") as RectangleGeometry; _transform = _content.RenderTransform as CompositeTransform; base.OnApplyTemplate(); }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); _canvasControl = GetTemplateChild(CanvasControlPartName) as CanvasControl; if (_canvasControl != null) _canvasControl.Draw += Draw; _contentPresenter = GetTemplateChild(ContentPresenterPartName) as ContentPresenter; }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); _contentPresenter = GetTemplateChild("ContentPresenter") as WContentPresenter; _rootGrid = GetTemplateChild("RootGrid") as Windows.UI.Xaml.Controls.Grid; UpdateBackgroundColor(); UpdateBorderRadius(); }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); //Check to see if there's a header, and realize the element if there is one if(!string.IsNullOrEmpty(Header)) { _header = (ContentPresenter)GetTemplateChild("HeaderPresenter"); //This will realize the element } }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); #if WINDOWS_UWP _contentPresenter = GetTemplateChild("ContentPresenter") as WContentPresenter; #else _border = GetTemplateChild("Border") as Border; #endif UpdateBackgroundColor(); UpdateBorderRadius(); }
protected override void OnApplyTemplate() { _frame = base.GetTemplateChild("frame") as Grid; _webView = base.GetTemplateChild("webView") as WebView; _glass = base.GetTemplateChild("glass") as Grid; _container = base.GetTemplateChild("container") as Grid; _header = base.GetTemplateChild("header") as ContentPresenter; _footer = base.GetTemplateChild("footer") as ContentPresenter; _asideLeft = base.GetTemplateChild("asideLeft") as ContentPresenter; _asideRight = base.GetTemplateChild("asideRight") as ContentPresenter; _clip = base.GetTemplateChild("clip") as RectangleGeometry; _progress = base.GetTemplateChild("progress") as ProgressRing; _webView.NavigationStarting += OnNavigationStarting; _webView.NavigationCompleted += OnNavigationCompleted; _webView.ScriptNotify += OnScriptNotify; _glass.ManipulationStarting += OnGlassManipulationStarting; _glass.ManipulationStarted += OnGlassManipulationStarted; _glass.PointerPressed += OnGlassPointerPressed; _header.PointerWheelChanged += OnPointerWheelChanged; _footer.PointerWheelChanged += OnPointerWheelChanged; _asideLeft.PointerWheelChanged += OnPointerWheelChanged; _asideRight.PointerWheelChanged += OnPointerWheelChanged; _header.ManipulationStarted += OnAdornManipulationStarted; _footer.ManipulationStarted += OnAdornManipulationStarted; _asideLeft.ManipulationStarted += OnAdornManipulationStarted; _asideRight.ManipulationStarted += OnAdornManipulationStarted; _header.ManipulationDelta += OnAdornManipulationDelta; _footer.ManipulationDelta += OnAdornManipulationDelta; _asideLeft.ManipulationDelta += OnAdornManipulationDelta; _asideRight.ManipulationDelta += OnAdornManipulationDelta; _header.ManipulationCompleted += OnAdornManipulationCompleted; _footer.ManipulationCompleted += OnAdornManipulationCompleted; _asideLeft.ManipulationCompleted += OnAdornManipulationCompleted; _asideRight.ManipulationCompleted += OnAdornManipulationCompleted; _header.SizeChanged += AdornSizeChanged; _footer.SizeChanged += AdornSizeChanged; _asideLeft.SizeChanged += AdornSizeChanged; _asideRight.SizeChanged += AdornSizeChanged; this.SizeChanged += OnSizeChanged; base.OnApplyTemplate(); }
public void Show(Type viewType) { var attr = viewType.GetTypeInfo().GetCustomAttribute<InPlaceDialogContainerAttribute>(); var child = (UIElement)Activator.CreateInstance(viewType); this.contentPresenter = Window.Current.Content.FindVisualChildren<ContentPresenter>().FirstOrDefault(cp => cp.Name == attr.ContentPresenterName) ?? this.contentPresenter; if (this.contentPresenter != null) { this.previousContent = this.contentPresenter.Content; this.contentPresenter.Content = child; } }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); headerPresenter = GetTemplateChild("headerPresenter") as ContentPresenter; if (headerPresenter != null) { headerPresenter.RegisterPropertyChangedCallback(ContentPresenter.ContentProperty, new DependencyPropertyChangedCallback(OnHeaderPresenterContentChanged)); } else { Debug.Assert(false, "headerpresenter is missing."); } }
private void SwitchBetweenViewsButton_Loaded(object sender, RoutedEventArgs e) { parent = GetContentPresenter(); if (IsArtistAlbumsList(parent)) { SwitchBetweenViewsButton.Label = "Tracks"; SwitchBetweenViewsGlyph.Glyph = App.Current.Resources["DropdownSymbol"].ToString(); } else { SwitchBetweenViewsGlyph.Glyph = App.Current.Resources["AlbumDiscSymbol"].ToString(); SwitchBetweenViewsButton.Label = "Albums"; } }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); _LeftContainer = GetTemplateChild("LeftContainer") as Grid; _LeftContentContainer = GetTemplateChild("LeftContentContainer") as Grid; _LeftTextBlock = GetTemplateChild("LeftText") as TextBlock; _RightContainer = GetTemplateChild("RightContainer") as Grid; _RightContentContainer = GetTemplateChild("RightContentContainer") as Grid; _RightTextBlock = GetTemplateChild("RightText") as TextBlock; _ContentContainer = GetTemplateChild("ContentContainer") as Grid; _RightContent = GetTemplateChild("RightContent") as ContentPresenter; _LeftContent = GetTemplateChild("LeftContent") as ContentPresenter; WireAnimations(); WireManipulation(); }
internal DataGridRow(DataGrid dataGrid, object item) { Item = item; DataGrid = dataGrid; var x = 0; var hasStar = false; foreach (var c in dataGrid.Columns) { var cell = c.GenerateElement(item); var content = new ContentPresenter(); content.Content = cell.Control; //content.ContentTemplate = dataGrid.CellTemplate; content.Margin = new Thickness(10, 0, 0, 5); // TODO: Use template and remove margin content.Tag = cell; SetColumn(content, x++); Children.Add(content); var def = c.CreateGridColumnDefinition(); hasStar = hasStar || def.Width.IsStar; ColumnDefinitions.Add(def); } if (!hasStar) ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); // second row used for details view RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); Loaded += delegate { if (DataGrid.SelectionMode == SelectionMode.Single) { if (DataGrid.SelectedItem != null) IsSelected = DataGrid.SelectedItem.Equals(item); } else { if (DataGrid.SelectedItems != null) IsSelected = DataGrid.SelectedItems.Contains(item); } }; }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); _presenter = GetTemplateChild("presenter") as Windows.UI.Xaml.Controls.ContentPresenter; _titleViewPresenter = GetTemplateChild("TitleViewPresenter") as FrameworkElement; _commandBar = GetTemplateChild("CommandBar") as CommandBar; _toolbarPlacementHelper.Initialize(_commandBar, () => ToolbarPlacement, GetTemplateChild); TaskCompletionSource <CommandBar> tcs = _commandBarTcs; tcs?.SetResult(_commandBar); }
protected override async void OnApplyTemplate() { base.OnApplyTemplate(); _backgroundFxImage = this.GetTemplateChild("BackgroundFxImage") as Image; _foregroundFxImage = this.GetTemplateChild("ForegroundFxImage") as Image; _contentPresenter = this.GetTemplateChild("ContentPresenter") as ContentPresenter; _renderedGrid = this.GetTemplateChild("RenderedGrid") as Grid; if (_renderedGrid != null) { _renderedGrid.SizeChanged += this.OnContentPresenterSizeChanged; } if (_renderedGrid.ActualHeight > 0) { await this.UpdateFx(); } }
void Switch(int index, ContentPresenter frame) { switch (index) { case 0: if (!(frame.Content is AllVideosPivotItem)) frame.Content = new AllVideosPivotItem(); break; case 1: if (!(frame.Content is ShowsPivotItem)) frame.Content = new ShowsPivotItem(); break; case 2: if (!(frame.Content is CameraRollPivotItem)) frame.Content = new CameraRollPivotItem(); break; } }
protected override void OnApplyTemplate() { rootBorder = (Border) GetTemplateChild(PART_ROOT_BORDER); rootGrid = (Grid) GetTemplateChild(PART_ROOT_GRID); backButton = (Button) GetTemplateChild(PART_BACK_BUTTON); dialogGrid = (Grid) GetTemplateChild(PART_DIALOGGRID); contentPresenter = (ContentPresenter) GetTemplateChild(PART_CONTENT); BackButtonVisibility = Visibility.Visible; ResizeContainers(); if (backButton != null) backButton.Click += BackButton_Click; Window.Current.SizeChanged += OnWindowSizeChanged; Unloaded += OnUnloaded; base.OnApplyTemplate(); }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); _backButton = GetTemplateChild("backButton") as AppBarButton; if (_backButton != null) { _backButton.Click += OnBackClicked; } _presenter = GetTemplateChild("presenter") as Windows.UI.Xaml.Controls.ContentPresenter; _commandBar = GetTemplateChild("CommandBar") as CommandBar; TaskCompletionSource <CommandBar> tcs = _commandBarTcs; if (tcs != null) { tcs.SetResult(_commandBar); } }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); _backButton = GetTemplateChild("backButton") as AppBarButton; if (_backButton != null) { _backButton.Click += OnBackClicked; } _presenter = GetTemplateChild("presenter") as Windows.UI.Xaml.Controls.ContentPresenter; _commandBar = GetTemplateChild("CommandBar") as CommandBar; #if WINDOWS_UWP _toolbarPlacementHelper.Initialize(_commandBar, () => ToolbarPlacement, GetTemplateChild); #endif TaskCompletionSource <CommandBar> tcs = _commandBarTcs; tcs?.SetResult(_commandBar); }
public void HorizontalCenterElements(ButtonBase btn, Viewbox symbolView, ContentPresenter contentPresenter, IconPosition iconPos, double iconInterval) { if (symbolView == null || contentPresenter == null) return; switch (iconPos) { case IconPosition.Left: symbolView.Margin = new Thickness(CalculateMarginWidth(btn, symbolView, contentPresenter, iconInterval), 0, 0, 0); break; case IconPosition.Right: symbolView.Margin = new Thickness(0, 0, CalculateMarginWidth(btn, symbolView, contentPresenter, iconInterval), 0); break; case IconPosition.Top: symbolView.Margin = new Thickness(0, CalculateMarginHeight(btn, symbolView, contentPresenter, iconInterval), 0, 0); break; case IconPosition.Bottom: symbolView.Margin = new Thickness(0, 0, 0, CalculateMarginHeight(btn, symbolView, contentPresenter, iconInterval)); break; } }
protected override void OnApplyTemplate() { if (_masterPresenter != null) { // Despite itself being unparented when the template changes, the presenters' children still think they're // parented and so the new presenters throw when the content is assigned to them. _masterPresenter.Content = null; _masterPresenter = null; } if (_detailPresenter != null) { _detailPresenter.Content = null; _detailPresenter = null; } if (_popup != null) { _popup.Closed -= OnPopupClosed; _popup = null; } base.OnApplyTemplate(); _masterPresenter = GetTemplateChild("masterPresenter") as Windows.UI.Xaml.Controls.ContentPresenter; _detailPresenter = GetTemplateChild("detailPresenter") as Windows.UI.Xaml.Controls.ContentPresenter; _txbTitle = GetTemplateChild("txbTitle") as TextBlock; _grd = GetTemplateChild("grdToolbar") as Windows.UI.Xaml.Controls.Grid; _popup = GetTemplateChild("popup") as Popup; if (_popup != null) { _popup.Closed += OnPopupClosed; } UpdateMaster(); UpdateDetail(); UpdateTitle(); UpdateToolbar(); }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); _backButton = GetTemplateChild("backButton") as AppBarButton; if (_backButton != null) { _backButton.Click += OnBackClicked; } _presenter = GetTemplateChild("presenter") as Windows.UI.Xaml.Controls.ContentPresenter; _commandBar = GetTemplateChild("CommandBar") as CommandBar; #if WINDOWS_UWP _bottomCommandBarArea = GetTemplateChild("BottomCommandBarArea") as Border; _topCommandBarArea = GetTemplateChild("TopCommandBarArea") as Border; UpdateToolbarPlacement(); #endif TaskCompletionSource <CommandBar> tcs = _commandBarTcs; tcs?.SetResult(_commandBar); }
void Switch(int index, ContentPresenter frame) { switch (index) { case 0: if (!(frame.Content is AlbumCollectionBase)) frame.Content = new AlbumCollectionBase(); break; case 1: if (!(frame.Content is ArtistCollectionBase)) frame.Content = new ArtistCollectionBase(); break; case 2: if (!(frame.Content is SongsPivotItem)) frame.Content = new SongsPivotItem(); break; case 3: if (!(frame.Content is PlaylistPivotItem)) frame.Content = new PlaylistPivotItem(); break; } }
private bool CreateCells(object item) { var columnIndex = 0; var hasStar = false; foreach (var column in DataGrid.Columns) { var cell = column.CreateCell(item); cell.Control.Tag = cell; cell.Control.DataContext = item; var cellControl = new ContentPresenter(); cellControl.Content = cell; cellControl.ContentTemplate = DataGrid.CellTemplate; SetColumn(cellControl, columnIndex++); Children.Add(cellControl); var columnDefinition = column.CreateGridColumnDefinition(); hasStar = hasStar || columnDefinition.Width.IsStar; ColumnDefinitions.Add(columnDefinition); } return hasStar; }
private void BuildUp() { var x = 0; var hasStar = false; titleRowControl.ColumnDefinitions.Clear(); foreach (var c in Columns) { var title = new ContentPresenter(); title.Content = c; title.ContentTemplate = HeaderTemplate; title.Tapped += OnTapped; Grid.SetColumn(title, x++); titleRowControl.Children.Add(title); var def = c.CreateGridColumnDefinition(); hasStar = hasStar || def.Width.IsStar; titleRowControl.ColumnDefinitions.Add(def); } if (!hasStar) titleRowControl.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); UpdateItemsSource(); SelectColumn(Columns[DefaultOrderIndex]); }
private async Task<bool> NavigateCore( Type sourcePageType, object parameter, NavigationMode navigationMode) { _isNavigating = true; this.CanNavigate = false; this.CanGoBack = false; this.CanGoForward = false; this.IsHitTestVisible = false; // Make sure we run on UI thread if (!Dispatcher.HasThreadAccess) { Task<bool> navigateCoreTask = null; await Dispatcher.RunAsync( CoreDispatcherPriority.High, () => navigateCoreTask = NavigateCore(sourcePageType, parameter, navigationMode)); return await navigateCoreTask; } try { await _waitForApplyTemplateTaskSource.Task; await this.WaitForLoadedAsync(); AlternativePage currentPage = null; #region OnNavigatingFrom part if (_currentPagePresenter != null) { currentPage = (AlternativePage)_currentPagePresenter.Content; var cancelArgs = new AlternativeNavigatingCancelEventArgs( navigationMode, sourcePageType); await this.OnNavigating(cancelArgs); if (!cancelArgs.Cancel) { await currentPage.OnNavigatingFromInternal(cancelArgs); } if (cancelArgs.Cancel) { return false; } } #endregion #region Initializing new page instance part var je = new JournalEntry { SourcePageType = sourcePageType, Parameter = parameter }; AlternativePage newPage; ContentPresenter newPagePresenter; if (_preloadedPageCache.ContainsKey(je)) { newPagePresenter = _preloadedPageCache[je]; newPage = (AlternativePage)newPagePresenter.Content; _preloadedPageCache.Remove(je); } else { newPage = _frameCache.Get(je.SourcePageType); if (newPage == null) { throw new InvalidOperationException( "Pages used in AlternativeFrame need to be of AlternativePage type."); } newPage.Frame = this; newPagePresenter = new ContentPresenter { Style = PagePresenterStyle }; newPagePresenter.Content = newPage; _pagePresentersPanel.Children.Add(newPagePresenter); } newPagePresenter.Opacity = 0.005; await UnloadAllPreloaded(); #endregion #region OnNavigatingTo part var args = new AlternativeNavigationEventArgs( newPage.Content, navigationMode, je.Parameter, je.SourcePageType); await newPage.OnNavigatingToInternal(args); #endregion #region Journal Bookeeping part switch (navigationMode) { case NavigationMode.New: this.ForwardStack.Clear(); if (this.CurrentJournalEntry != null) { this.BackStack.Push(this.CurrentJournalEntry); } break; case NavigationMode.Forward: this.ForwardStack.Pop(); if (this.CurrentJournalEntry != null) { this.BackStack.Push(this.CurrentJournalEntry); } break; case NavigationMode.Back: this.BackStack.Pop(); if (this.CurrentJournalEntry != null) { this.ForwardStack.Push(this.CurrentJournalEntry); } break; } this.CurrentJournalEntry = je; #endregion #region OnNavigated~() calls await this.OnNavigated(args); if (currentPage != null) { await currentPage.OnNavigatedFromInternal(args); } await newPage.OnNavigatedToInternal(args); #endregion #region Transition part await newPagePresenter.WaitForLoadedAsync(); await newPagePresenter.WaitForNonZeroSizeAsync(); if (this.ShouldWaitForImagesToLoad == true && newPage.ShouldWaitForImagesToLoad != false || newPage.ShouldWaitForImagesToLoad == true && this.ShouldWaitForImagesToLoad != false) { await newPage.WaitForImagesToLoad(WaitForImagesToLoadTimeout); } newPagePresenter.Opacity = 1.0; if (navigationMode == NavigationMode.Back) { await TransitionBackward( currentPage, newPage, _currentPagePresenter, newPagePresenter); } else { await TransitionForward( currentPage, newPage, _currentPagePresenter, newPagePresenter); } if (_currentPagePresenter != null) { _pagePresentersPanel.Children.Remove(_currentPagePresenter); _frameCache.Store(currentPage); } _currentPagePresenter = newPagePresenter; #endregion return true; } finally { this.IsHitTestVisible = true; _isNavigating = false; this.CanNavigate = true; this.CanGoBack = this.BackStack.Count > 0; this.CanGoForward = this.ForwardStack.Count > 0; //DC.TraceLocalized(GetNavigationState()); } }
/// <summary> /// Reads and restores the navigation history of a Frame from a provided serialization string. /// </summary> /// <param name="navigationState"> /// The serialization string that supplies the restore point for navigation history. /// </param> /// <returns></returns> public async Task SetNavigationState(string navigationState) { try { Debug.Assert(navigationState[0] == '1'); Debug.Assert(navigationState[1] == ','); int parseIndex = 2; var totalPages = ParseNumber(navigationState, ref parseIndex); this.BackStack.Clear(); this.ForwardStack.Clear(); this.CurrentJournalEntry = null; if (_currentPagePresenter != null) { var currentPage = _currentPagePresenter.Content as AlternativePage; if (currentPage != null) { _frameCache.Store(currentPage); } _pagePresentersPanel.Children.Remove(_currentPagePresenter); _currentPagePresenter = null; } if (totalPages == 0) { this.CurrentJournalEntry = null; await UnloadAllPreloaded(); return; } var backStackDepth = ParseNumber(navigationState, ref parseIndex); var reversedForwardStack = new List<JournalEntry>(totalPages - backStackDepth); for (int i = 0; i < totalPages; i++) { var je = ParseJournalEntry(navigationState, ref parseIndex); Debug.WriteLine("Type: {0}, Param: {1}", je.SourcePageType, je.Parameter); if (i < backStackDepth) { this.BackStack.Push(je); } else { reversedForwardStack.Add(je); } } reversedForwardStack.Reverse(); foreach (var journalEntry in reversedForwardStack) { this.ForwardStack.Push(journalEntry); } var forwardJournalEntry = this.ForwardStack.Peek(); await NavigateCore( forwardJournalEntry.SourcePageType, forwardJournalEntry.Parameter, NavigationMode.Forward); } catch (Exception ex) { throw new ArgumentException("Could not deserialize frame navigation state.", "navigationState", ex); } }
/// <summary> /// Preloads a page of the specified source page type. /// </summary> /// <remarks> /// Allows to preload a page before user navigates to it, so if it does get navigated to - shows up quickly. /// If another page gets navigated to - the preloaded page will be released or cached depending on its NavigationCacheMode property. /// </remarks> /// <param name="sourcePageType">Type of the source page.</param> /// <param name="parameter">The parameter.</param> /// <returns></returns> public async Task<bool> Preload(Type sourcePageType, object parameter) { var je = new JournalEntry { SourcePageType = sourcePageType, Parameter = parameter }; if (_preloadedPageCache.ContainsKey(je)) { return true; } var cp = new ContentPresenter { Style = PagePresenterStyle }; var newPage = _frameCache.Get(sourcePageType); Debug.Assert(newPage != null, "Pages used in AlternativeFrame need to be of AlternativePage type."); if (newPage == null) { return false; } newPage.Frame = this; cp.Content = newPage; cp.Opacity = 0.005; Canvas.SetZIndex(cp, int.MinValue); _pagePresentersPanel.Children.Insert(0, cp); _preloadedPageCache.Add(je, cp); await newPage.PreloadInternal(parameter); cp.Opacity = 0; return true; }
private async Task TransitionBackward( AlternativePage currentPage, AlternativePage newPage, ContentPresenter previousPagePresenter, ContentPresenter newPagePresenter) { var transition = currentPage != null ? (currentPage.PageTransition ?? this.PageTransition) : this.PageTransition; if (transition != null) { if (currentPage != null) { await currentPage.OnTransitioningFromInternal(); } if (newPage != null) { await newPage.OnTransitioningToInternal(); } await transition.TransitionBackward(previousPagePresenter, newPagePresenter); if (currentPage != null) { await currentPage.OnTransitionedFromInternal(); } if (newPage != null) { await newPage.OnTransitionedToInternal(); } } }
public async Task<bool> GoBack() { if (_isNavigating) { throw new InvalidOperationException("Navigation already in progress."); } _isNavigating = true; this.CanNavigate = false; this.CanGoBack = false; try { await this.WaitForLoadedAsync(); AlternativePage currentPage = null; var currentJe = this.BackStack.Pop(); var je = BackStack.Peek(); if (_currentPagePresenter != null) { currentPage = (AlternativePage)_currentPagePresenter.Content; var cancelArgs = new AlternativeNavigatingCancelEventArgs( NavigationMode.Back, je.Type); await currentPage.OnNavigatingFromInternal(cancelArgs); if (cancelArgs.Cancel) { this.BackStack.Push(currentJe); return false; } } AlternativePage newPage; ContentPresenter newPagePresenter; if (_preloadedPageCache.ContainsKey(je)) { newPagePresenter = _preloadedPageCache[je]; newPage = (AlternativePage)newPagePresenter.Content; _preloadedPageCache.Remove(je); } else { newPage = (AlternativePage)Activator.CreateInstance(je.Type); newPage.Frame = this; newPagePresenter = new ContentPresenter { Style = PagePresenterStyle }; newPagePresenter.Content = newPage; _pagePresentersPanel.Children.Add(newPagePresenter); } newPagePresenter.Opacity = 0.005; await UnloadPreloadedPages(); var args = new AlternativeNavigationEventArgs( newPage.Content, NavigationMode.New, je.Parameter, je.Type); await newPage.OnNavigatingToInternal(args); await newPagePresenter.WaitForLoadedAsync(); await newPagePresenter.WaitForNonZeroSizeAsync(); newPagePresenter.Opacity = 1.0; if (this.PageTransition != null) { await this.PageTransition.TransitionBackward(_currentPagePresenter, newPagePresenter); } if (currentPage != null) { await currentPage.OnNavigatedFromInternal(args); _pagePresentersPanel.Children.Remove(_currentPagePresenter); } _currentPagePresenter = newPagePresenter; await newPage.OnNavigatedToInternal(args); return true; } finally { _isNavigating = false; this.CanNavigate = true; this.CanGoBack = this.BackStack.Count > 1; } }
// Allows to preload a page before user navigates to it, so if it does get navigated to - it is quick. public async Task Preload(Type sourcePageType, object parameter) { var je = new JournalEntry {Type = sourcePageType, Parameter = parameter}; if (_preloadedPageCache.ContainsKey(je)) { return; } var cp = new ContentPresenter {Style = PagePresenterStyle}; var newPage = (AlternativePage)Activator.CreateInstance(sourcePageType); newPage.Frame = this; cp.Content = newPage; cp.Opacity = 0.005; Canvas.SetZIndex(cp, int.MinValue); _pagePresentersPanel.Children.Insert(0, cp); _preloadedPageCache.Add(je, cp); await newPage.PreloadInternal(parameter); }
protected override void OnApplyTemplate() { base.OnApplyTemplate(); //Single click/tap on header relMainPanel = (Windows.UI.Xaml.Controls.RelativePanel)GetTemplateChild("HeaderPanel"); if (relMainPanel != null) { relMainPanel.Tapped += (object sender, TappedRoutedEventArgs e) => { if (!headerToolContentTapped) { IsExpanded = !IsExpanded; setExpandState(IsExpanded); } else { headerToolContentTapped = !headerToolContentTapped; } }; } //Single click/tap on header headerToolContent = (Windows.UI.Xaml.Controls.ContentPresenter)GetTemplateChild("HeaderToolContent"); if (headerToolContent != null) { headerToolContent.Tapped += (object sender, TappedRoutedEventArgs e) => { headerToolContentTapped = true; }; } //Toggle button toggleExpander = (Windows.UI.Xaml.Controls.Primitives.ToggleButton)GetTemplateChild("ExpandCollapseButton"); if (toggleExpander != null) { toggleExpander.Click += (object sender, RoutedEventArgs e) => { IsExpanded = !IsExpanded; setExpandState(IsExpanded); //IsExpanded = !IsExpanded; //toggleExpander.IsChecked = IsExpanded; //changeVisualState(_useTransitions); }; } //Fill with content contentElement = (FrameworkElement)GetTemplateChild("Content"); if (contentElement != null) { _collapsedState = (VisualState)GetTemplateChild("Collapsed"); if ((_collapsedState != null) && (_collapsedState.Storyboard != null)) { _collapsedState.Storyboard.Completed += (object sender, object e) => { contentElement.Visibility = Visibility.Collapsed; }; } } changeVisualState(false); }