WinFormがWindows 95からのWin32 APIをベースにしたプラットフォームで、WinFormはWin32APIに依拠し、WPFはDirectXの描画に依拠した新しいプラットフォームであることは前に述べました。
ということで、
Microsoft Copilotに以下の質問をしてみました。
Q:WinFormになくて、WPFで新たに作られたコントロール(UIElement)は何ですか?
これに対する答えは以下の通り。
A:「WPFで新たに作られたコントロール(UIElement)は、Windows Formsで提供されていないか、または大きく改善されたものが多くあります。例えば、次のようなコントロールがあります。
-
Button: ボタンの外観や動作をカスタマイズできるようになりました。また、ボタンにはコマンドやイベントトリガーを割り当てることができます。
-
ComboBox: コンボボックスの項目には、テキストだけでなく、画像やその他の要素を含めることができます。また、コンボボックスのドロップダウン部分のレイアウトやスタイルを変更することもできます。
-
ListBox: リストボックスの項目には、テキストだけでなく、画像やその他の要素を含めることができます。また、リストボックスの選択モードやレイアウトを変更することもできます。
-
DataGrid: データグリッドは、WPFで新たに追加されたコントロールで、表形式のデータを表示や編集することができます。データグリッドは、列の自動生成や並べ替え、フィルタリング、グループ化、集計などの機能を備えています。
-
Calendar: カレンダーは、WPFで新たに追加されたコントロールで、日付を選択することができます。カレンダーは、表示モードや選択モード、ブラックアウト日などの機能を備えています。(注:見た目はMCコントロールと同じです。)
-
MediaElement: メディアエレメントは、WPFで新たに追加されたコントロールで、オーディオやビデオなどのメディアファイルを再生することができます。メディアエレメントは、再生、一時停止、停止、シークなどの操作をサポートしています。
これらは、WPFで新たに作られたコントロール(UIElement)の一部です。他にも、WPFでは、Windows Formsでは提供されていない、または大きく改善されたコントロールが多数あります。詳しくは、こちらをご覧ください。」
↑に赤字で書いたものはWinFormでももちろんありましたが、WPFで刷新されたもの、という意味でしょう。実際これらはContentControlとしてUIElementを一つ持てますし、後に紹介するように背景(Background)の描画でWinForm時代のコントロールとは全く異なります。(Calenderを橙色にしているのは「WPFで新たに追加されたコントロール」と書いてあるからですが、これは注の通り、WinFormのMCコントロールと全く同じ外観です。)
青字でかかれたコントロールはWinFormにはなかったです。なので、次回MediaElementを紹介するのは理にかなったことですね。