single.php

C# WinUI3 の全画面表示を切り替える場合の対処法

C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトで、全画面モードとウィンドウ表示を切り替える場合の対処法です。

アプリの全画面表示

ウィンドウと最大化と違い、WinUI3などWindowsAppプロジェクトでは全画面表示がサポートされています。

ウィンドウの最大化を行った場合、タイトルバーと最小化や最大化、閉じるなどシステムで用意されたボタンが残ります。

全画面表示の場合は、タイトルバーが非表示となりアプリの画面全体が画面を覆う形になります。

SetPresenterメソッドで切り替え

WinUI3では[SetPresenter]メソッドに[AppWindowPresenterKind.FullScreen]を入力して切り替えることが可能です。

また[AppWindow.Presenter.Kind]プロパティで現在のウィンドウ状態を取得が可能です。

具体的には、次のコードに変更します。

private void myButton_Click(object sender, RoutedEventArgs e)
{
  Microsoft.UI.Windowing.AppWindow AppWindow;
  IntPtr hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
  Microsoft.UI.WindowId windowId = Microsoft.UI.Win32Interop.GetWindowIdFromWindow(hWnd);

  AppWindow = Microsoft.UI.Windowing.AppWindow.GetFromWindowId(windowId);
  if(AppWindow.Presenter.Kind == AppWindowPresenterKind.FullScreen)
  {
    AppWindow.SetPresenter(AppWindowPresenterKind.Default);
  }
  else
  {
    AppWindow.SetPresenter(AppWindowPresenterKind.FullScreen);
  }
}

アプリを実行してボタンをクリックすると全画面とウィンドウモードに切り替わります。

また、WinUI3プロジェクトでは同様に全画面表示に切り替えるための[TryEnterFullScreenMode]メソッドを利用するとCOMExceptionが発生する場合があります。詳しい内容は別記事をご覧ください。

まとめ

今回は短い記事ですが、Visual StudioのWinUI3プロジェクトで、全画面モードとウィンドウモードを切り替えたい場合の対処法について紹介しました。

[SetPresenter]メソッドに[AppWindowPresenterKind.FullScreen]と[AppWindowPresenterKind.Default]を入力することで全画面表示とウィンドウ表示を切り替えが可能です。

WinUI 3アプリを全画面表示とウィンドウ表示で切り替えたい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です