クロスプラットフォーム開発「.NET MAUI」のデスクトップアプリ開発に使える5つの機能とは1つの共有コードベースから多環境で実行可能なアプリを開発

Microsoftは、「.NET MAUI」で優れたデスクトップアプリケーションを作成するための主要機能として、「マルチウィンドウ」「トップレベルメニューバー」「コンテキストメニュー」「ツールチップ」「ポインタジェスチャ」を紹介した。

» 2023年01月27日 08時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Microsoftは2023年1月23日(米国時間)、「.NET MAUI」で優れたデスクトップアプリケーションを作成するための5つの機能を紹介した。

 .NET MAUI(.NET Multi-Platform App UI)は、2022年5月に一般提供が開始された。C#とXAMLを使用して、ネイティブのモバイルアプリやデスクトップアプリを作成するためのクロスプラットフォームフレームワークだ。.NET MAUIを使用すると、1つの共有コードベースからAndroid、iOS、macOS、Windowsで実行できるアプリを開発できる。

 Microsoftは公式ブログで、.NET MAUIがデスクトップアプリのユーザー体験を向上させるために提供するユニークな機能として、「マルチウィンドウ」「トップレベルメニューバー」「コンテキストメニュー」「ツールチップ」「ポインタジェスチャ」の5つを取り上げて紹介した。

マルチウィンドウ

 .NET MAUIでは、複数のウィンドウを作成、構成、表示、管理する機能を提供する「Window」クラスが導入された。.NET MAUIアプリを作成、実行すると、アプリは、「Application」クラスがコンテンツ表示のために作成、使用する既定のウィンドウを自動的に持つ。Applicationクラスは、新しいウィンドウの作成時に呼び出される新しい「CreateWindow」メソッドを持つ。

 アプリケーションをデスクトップ(またはタブレット)で実行する場合、利用できる画面領域が広いので、同じウィンドウで別のページに移動する代わりに、2つ目、3つ目のウィンドウを作成したい場合がある。

 気象アプリを例に挙げると、ユーザーは都市にナビゲートする際地図などの詳細情報を表示したいと思うかもしれない。開発者は、ユーザーが同じウィンドウでそのページに移動するようにするか、ビルトインAPIを使って新しいウィンドウを開くかどうかを選択できる。

詳細情報を表示する2つのウィンドウを持つ天気予報アプリ(提供:Microsoft)

 ユーザーは、1つのウィンドウに表示される情報に制約されることなく、複数のビューを利用できるようになった。ユーザーはいつでもウィンドウを閉じることができ、開発者がプログラミングによって閉じることもできる。

トップレベルメニューバー

 デスクトップアプリの最も一般的な機能の一つとして、Windowsではアプリに統合されており、Macではシステムメニューバーにあるメニューバーが挙げられる。.NET MAUIを使えば、数行のコードで簡単にメニューバーを統合できる。

 天気予報アプリを例に取ると、開発者は、ユーザーがさまざまな場所を追加、削除、または参照できるメニューを用意したいかもしれない。

複数の場所を表示するメニューバー(提供:Microsoft)

 全ての「ContentPage」は、複数レベルのメニューを持つことができるMenuBarItemsコレクションを持っている。

 これらのメニュー項目は、メニューが動的になるようにXAMLで直接作成したり、コードでプログラミングによって作成したりできる。メニュー項目は有効または無効にすることができ、セパレータ、サブメニュー、アイコンを持つことができる。「Command」にバインドして「Clicked」イベントを利用することもできる。

コンテキストメニュー

 ユーザーが要素を右クリックしたときに、多くのオプションを提供したい場合がある。例えば、メニューバーのようなメニューを特定のコンテキストに基づいて表示したいといったケースだ。そこでコンテキストメニューの出番となる。

 コンテキストメニューはメニューバーと同様のAPIを持ち、特定のコントロールに配置される。例えば、天気予報アプリで、ユーザーが特定の都市にコメントを追加したい場合がある。開発者は、新しいウィンドウを開き、「Editor」で入力する領域を提供することもできる。

太字、斜体、下線を表示するコンテキストメニュー(提供:Microsoft)

 Editorに「MenuFlyout」を適用し、前述のメニューバーと同じように「MenuFlyoutItems」で埋めることができる。

 メニューバーと同じように、Commandにバインドしてイベントを利用したり、アイコンやサブメニュー、セパレータなどを設定したりできる。

ツールチップ

 ツールチップは、アプリに機能を追加し、ユーザー体験を向上させるための迅速かつ簡単な方法だ。デスクトップユーザーはマウスとキーボードを使用するので、アプリのコントロールにマウスをホバーしたときに、開発者は追加のコンテキストを提供できる。「TooltipProperties.Text」に割り当てられたプロパティを使用すると、マウスホバー時にユーザーに表示される追加情報を指定できる。

 例えば、コメントページの保存ボタンに追加情報を追加したい場合、このプロパティを設定するだけで済む。

 このプロパティは、任意のコントロールのコードにプログラミングによって設定することもできる。

ポインタジェスチャ

 ユーザーがマウスで操作しているときにデスクトップアプリの使い勝手を高めるために、.NET MAUIは、マウスポインタ用の新しいジェスチャ認識機能を幾つか備えている。ポインタがコントロールに入った、そこから出た、あるいはコントロール内を移動したことが簡単に分かる。

 以下では、ポインタが「Image」と相互作用するときにイベントを取得する。イベントを取得すると、Image内のポインタの位置や、Imageからの相対的な位置を取得することもできる。

 このように、アプリ内でアクションを実行するために「Point」を使用できるようになっている。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。