public async Task <int> CreateNewViewAsync(Type viewModelType, object parameter = null) { int viewId = 0; var newView = CoreApplication.CreateNewView(); await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { viewId = ApplicationView.GetForCurrentView().Id; var frame = new Frame(); var viewState = new ShellViewState { ViewModel = viewModelType, Parameter = parameter }; frame.Navigate(typeof(ShellView), viewState); Window.Current.Content = frame; Window.Current.Activate(); }); if (await ApplicationViewSwitcher.TryShowAsStandaloneAsync(viewId)) { return(viewId); } return(0); }
public void ShellViewStateChanged(ShellViewState shellViewState) { this.ShellViewState = shellViewState; this.undockingCommandBarButton.Visibility = shellViewState == ShellViewState.Embedded ? Visibility.Visible : Visibility.Collapsed; this.showInTabCommandBarButton.Visibility = shellViewState == ShellViewState.Window ? Visibility.Visible : Visibility.Collapsed; this.showInWindowCommandBarButton.Visibility = shellViewState == ShellViewState.Tab ? Visibility.Visible : Visibility.Collapsed; this.saveAndNextCommandBarButton.Visibility = shellViewState == ShellViewState.Embedded ? Visibility.Visible : Visibility.Collapsed; this.saveAndCloseCommandBarButton.Visibility = shellViewState != ShellViewState.Embedded ? Visibility.Visible : Visibility.Collapsed; this.cancelCommandBarButton.Visibility = shellViewState == ShellViewState.Embedded ? Visibility.Visible : Visibility.Collapsed; this.cancelAndCloseCommandBarButton.Visibility = shellViewState != ShellViewState.Embedded ? Visibility.Visible : Visibility.Collapsed; }
protected override async void OnLaunched(LaunchActivatedEventArgs e) { var frame = Window.Current.Content as Frame; if (frame == null) { frame = new Frame(); Window.Current.Content = frame; } if (e.PrelaunchActivated == false) { await Startup.ConfigureAsync(); if (frame.Content == null) { var viewState = new ShellViewState { ViewModel = EntryViewModel, Parameter = EntryViewState }; frame.Navigate(typeof(MainShellView), viewState); } Window.Current.Activate(); } ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size(500, 500)); }