BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Windows Forms 5.0の新機能

Windows Forms 5.0の新機能

ブックマーク

原文(投稿日:2021/01/06)へのリンク

.NET 2.0以降初めて、Windows Forms(別名WinForms)は、High DPIに関連しない新機能を導入した。

Windows Forms(別名WinForms)には、.NET 1と.NET 2.0の2つのメジャーリリースしかなかった。それ以来、都度のバグ修正やHigh DPIの強化が行われてきたが、すべての機能開発は事実上停止していた。それでも、ネイティブWindows UIの薄いラッパーと見なされることが多いこのテクノロジは、正式に非推奨になることはなかった。そして、新しいプロジェクトが開発され続けた。特に内部ビジネスアプリケーションが開発され続け、そのシンプルさとパフォーマンスが評価されている。

.NET 5.0では、新しいWindows Forms機能の開発が本格的に始まった。これらの多くはスポンサーが付いたコミュニティとなっており、900件のプルリクエストの70%以上がMicrosoftの外部からのものであった。

タスクダイアログ - 新規

タスクダイアログは、Windowsが90年代から使用してきたメッセージボックスダイアログの代わるものとしてWindows Vistaに導入された。Ok/CancelやYes/Noなどの事前に決定されたペアの選択肢のみを許可するメッセージボックスとは異なり、開発者はタスクダイアログのオプションに独自のテキストを設定できる。その他の機能は次のとおりである。

  • 「主な指示」、「コンテンツ」、「追加情報」、「フッター」のテキストブロックの分離
  • ラジオボタン
  • ラベル付きのチェックボックス(通常「二度と聞かないでください」に使用される)
  • オプションでタイマーと自動クローズを備えたプログレスバー
  • メインアイコンとフッターアイコンの分離
  • 最小化オプション

オペレーティングシステムの一部であるが、タスクダイアログはMicrosoftによってWinFormsで公開されていなかった。ただし、Win32ライブラリ呼び出し(つまり、p/invoke)を介して使用することができる。2007年のCode Projectの記事「TaskDialog for WinForms」で、KevinGre氏はこれを行う方法を示している。

CoDaBixのKonstantin Preißer氏は、.NET5の実装を提供した。彼のバージョンのTaskDialogのドキュメントは、Microsoft Docsにあるが、彼のGitHubリポジトリの方が多くの情報を得られるかもしれない。

リストビューコントロール - 強化

リストビューコントロールの基本的な機能は、Windows Formsの開発者によく知られているはずである。しかし、おそらく知らなかったのは、Windows Vistaでコントロールが大幅に強化されたことである。前述のように、Windows Formsでの開発は2005年に終了したため、これらの拡張機能が引き継がれることはなかった。この機能には以下が含まれる。

タスクダイアログと同様に、この機能は、存在することがわかっていたら、Win32呼び出しを介してアクセスしていた可能性がある。

幸い、Hugh Bellamy氏とLoni Tra氏はそれらを認識しており、.NET5.0に必要なラッパーを提供していた。

ファイルダイアログ - 強化

Win32機能を公開する最後の例として、ファイルダイアログがある。

FileDialogは新しいAPIとしてFileDialog.ClientGuidを導入しました。Windowsファイルダイアログを使用すると、呼び出し元のアプリケーションがGUIDをダイアログの永続化された状態に関連付けることができます。ダイアログの状態には、最後にアクセスしたフォルダやダイアログの位置とサイズなどの要素を含めることができます。通常、この状態は実行可能ファイルの名前に基づいて永続化されます。GUIDを指定することにより、アプリケーションは、同じアプリケーション内のダイアログのバージョンごとに異なる永続化された状態を持つことができます(たとえば、インポートダイアログとオープンダイアログ)。

NUnitコアチームのJoseph Musser氏がこの機能を提供した。

アクセシビリティの改善

Windows Formsのアクセシビリティ機能の最新化も優先度が高くなっている。これには、UIオートメーションのさまざまなコントロールのサポート、LegacyIAccessibleコントロールパターンのサポート、TextコントロールパターンとTextRangeコントロールパターンのサポートが含まれている。アクセシビリティの詳細については、.NET開発者ブログをご覧ください。

Windows forms for .NET 6.0に対する取り組みが始まっている。6.0プレビュー1および6.0マイルストーンで計画されている内容を確認できる。(そして、そうである。さらなるHigh DPIの機能強化が予定されている。)

この記事に星をつける

おすすめ度
スタイル

BT