エバンジェリストの荒井さんから UX ガイドラインが更新されたとのお知らせがあったので、改めて UX ガイドラインを見直してみたところ、見慣れない機能が・・・!
プロジェクション マネージャーのガイドライン (Windows)
これはなんだ?!ということで動かして試してみました
普通の GridView で画像を表示するアプリの中でクリックしたら次のような処理を実行するようにしてみました
/// <summary> /// アイテムクリックイベントハンドラ /// </summary> /// <param name="sender">イベント発行者</param> /// <param name="e">イベント引数</param> public async void OnItemClick(object sender, ItemClickEventArgs e) { if (!ProjectionManager.ProjectionDisplayAvailable) { return; } var appView = ApplicationView.GetForCurrentView(); // クリックしたタイルの画像 Uri var imageUri = ((e.ClickedItem as ItemContainerViewModel).Content as PhotoViewModel).ImageUri; // 新しいアプリケーション画面を作る var view = CoreApplication.CreateNewView(); await view.Dispatcher.RunAsync( CoreDispatcherPriority.Normal, async () => { var newWindow = Window.Current; var newAppView = ApplicationView.GetForCurrentView(); var grid = new Grid(); var image = new Image(); grid.Children.Add(new Image() { Source = new BitmapImage(new Uri(imageUri)), }); // 新しいアプリケーション画面のウィンドウに画像を埋め込み newWindow.Content = grid; // 同一アプリのアプリケーション画面として別画面に投影開始 await ProjectionManager.StartProjectingAsync(newAppView.Id, appView.Id); }); }
さっそく実行すると
おおー!2 つ目の画面が開いて選んだ写真が表示されました Windows アプリでも 1 アプリで複数画面使えるんですね・・・業務アプリとかで応用できそう