Windows 10のUWPアプリで、マルチウィンドウアプリの作成を容易にする、新しいAPIのプレビュー版が公開されたことがわかりました(MSPoweruser)。
Working off of insider builds? We're excited to announce the new Windowing APIs for #UWP! Build better multi-tasking with the ability to create multiple windows on a single thread 👍Blog post with samples and more information here: https://t.co/oBGPNauQ0N pic.twitter.com/S5tXHdU8cA
— Windows UI (@WindowsUI) 2019年2月13日
Microsoftはもともと昨年開催されたBuildカンファレンスで新APIの公開を約束していましたが、フィードバックを受け取った結果一般向けの公開は見合わされ、ようやく今回のプレビュー版の公開に至っています。
Microsoftの開発者Roberth Karman氏が公開した文書によると、新APIはWindows 10 SDK Preview Build 18327以降で利用可能。新しく導入されたウィンドウクラスはAppWindowと呼ばれ、作成元のUIスレッド上で動作するため、ウィンドウ間のコミュニケーションがこれまでよりも大幅に簡単化することが期待できます。
例えば以下のようなウィンドウ生成コードのサンプルが掲載されています。
private async void ShowNewWindow(object sender, RoutedEventArgs e) { // Create a new window appWindow = await AppWindow.TryCreateAsync(); // Navigate our frame to the page we want to show in the new window appWindowFrame.Navigate(typeof(AppWindowMainPage)); // Attach the XAML content to our window ElementCompositionPreview.SetAppWindowContent(appWindow, appWindowFrame); // Show the window appWindow.TryShowAsync(); }
APIはまだ完成しているわけではなく、制限も残っているとのことですが、より実用的なUWPアプリの作成を目指している方は、同リンクをたどってサンプルコードを参照することをおすすめします。