BT

.NETのクロスプラットフォームUIツールキットであるAvaloniaの概観

| 作者: Jonathan Allen フォローする 609 人のフォロワー , 翻訳者 編集部T フォローする 1 人のフォロワー 投稿日 2018年2月20日. 推定読書時間: 3 分 |

原文(投稿日:2018/02/15)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます新機能の詳細をご覧ください。

.NET Coreエコシステムで頻繁に言われている欠点は、真のクロスプラットフォームUIツールキットがないことである。過去にSilverlightXamarin Formsのようなマルチプラットフォームでの試みはあったが、誰もまだ完全なXAMLスタイルのクロスプラットフォームオプションを成しえていない。AvaloniaはWindows(.NET Framework、.NET Core)、Linux(GTK)、MacOS、Android、iOSをサポートする計画で、試みようとしている。

基本的にはインスピレーションはWPFであるが、Avaloniaはそのツールキットを直接移植したものではない。スタイルがどのように動作するかなど、デザインにいくつかの重要な変更が加えられている。Avaloniaでは、スタイルはCSSと同じように動作し、スタイルクラスとセレクタをカスケードさせ、オーバーラップさせることができる。対照的に、WPFではコントロールごとに単一のスタイルしか使えない。つまり、Avaloniaでは同じようなスタイルを複数用意する必要性を減らすことができる。

Avaloniaではホバー効果を出すために、トリガではなく、「:pointerover」のような疑似クラスを使用する。他の疑似クラスとして、ボタン用の:focus、:disabled、:pressedや、チェックボックス用の:checkedがある。

AvaloniaスタイルはStyledPropertyにのみバインドできる。これは、同じ基本パターンを持つWPFのDependencyPropertyに似ている。添付プロパティもサポートされている。(これは、子の配置先を知るために必要となるグリッドのようなレイアウトコントロールと連動する)。

Avaloniaのデータバインディング構文の興味深い機能は、非同期操作のサポートである。他のXAMLベースのUIツールキットにはないが、Avaloniaでは、TaskあるいはIObservable操作の結果にバインドできる。

多くの進歩があったが、3人の開発者だけで、大部分の作業を行っている。そのため、彼らはより大きいオープンソースコミュニティに支援を求めている。Jeremy Koritzinsky氏によれば、支援を最も必要とする分野は次の通りである。

ドキュメンテーション

主に、概念的なドキュメント、チュートリアル、ハウツーガイド。

デモアプリ

AvaloniaでWPFのようなチュートリアルアプリケーションを作成し、違いをハイライトする。

XAMLのエキスパート

条件やアダプティブ・レイアウトのような、より進んだXAML構成について手助けしてほしい(Xamarin.Formsにどのように、ある程度のアダプティブ・レイアウトを持たせるかと同じように)。

我々が対応できていない共通のコントロール

DataGrid: 必要なのは分かっているが、現時点で時間がなくて移植できていないコードがたくさんある(WPFまたはUWPの実装はどれも、現在のAvaloniaのすべてと言ってよいLOCに近づいている)

2D Graphicsのエキスパート

具体的には、DirectX以外のレンダリングサブシステムでのテキストレイアウト/レンダリングを適切に行うための専門家が必要である。WindowsでないプラットフォームとしてSkiaを使えるが、Skiaにはテキストレイアウトエンジンがない。

Visual Studio Extension

拡張機能を新しいデザイナであるXAMLインテリセンスにアップグレードする。

AvaloniaはMITライセンス下で開発されている。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT