Windows Formsアプリケーションを開発して5年になります。多くの人が、WPFを検討すべきだと言っています。どちらが最適かを判断するために、WPFとWindowsフォームについていくつか質問があります。 WPFはWindows Formsよりも新しいものであり、多くの人がWPFは未来になると言っています。他の人は、Windows Formsはより古く、そのためより安全だと言います。将来はどうなるのか分かりません。 Googleには長所と短所がありますが、これらの質問に対する回答を詳しく教えていただければ幸いです。
WPFがWindowsフォームより優れている、またはその逆であると言う意味はありません。それは多くの要因に依存します:
構築しているUIの種類。明らかに、設計するビューの複雑さは、両方のプラットフォームでのパフォーマンスに影響します。レイアウトとレンダリングのパイプラインが異なります。
各プラットフォームでパフォーマンスを最適化する方法。
Windowsフォームの代わりにWPFを使用する利点:
XAMLを使用すると、GUIを簡単に作成および編集でき、デザイナー(XAML)とプログラマー(C#、VB.NETなど)の間で作業を分割できます。
WindowsアプリケーションとWebアプリケーション(Silverlight/XBAP)の両方のユーザーインターフェイスを作成できます。
データバインディング。これにより、データとレイアウトをよりクリーンに分離できます。
パフォーマンスを向上させるために、GUIの描画にハードウェアアクセラレーションを使用します。
WPFの代わりにWindowsフォームを使用する主な利点:
WPFのインボックスコントロールスイートは、WinFormsのコントロールスイートよりもはるかに制限されています。
WinFormsのサードパーティの制御スペースでのサポートが強化されています。 (それは変化していますが、今のところ時間の都合により、WinFormsはコミュニティでより強力なサポートを提供しています。)
WPFの主な欠点は、Monoがクロスプラットフォームで実際にサポートしていないことです(たとえば、LinuxおよびMacでは動作しません)。当初、Xamarian/Novellaは、実装が複雑であるため、実装しないと述べました。反対のことは見ていません。そうではありませんが、モデルクラスを作成してから、OS固有のフロントエンドを実行することをお勧めします。 WPFがオープンソースであっても、簡単に移植できないものの上に構築される場合があります。
学習能力に依存します。
WPFのどの部分を間違いなく検討する必要がありますか?
[〜#〜] xaml [〜#〜]:XAMLおよびWPFアプリケーションでの使用方法について学習します。
Layout:レイアウトパネルと、それらがユーザーインターフェースを構築するためにどのように使用されるかについて学びます。
データバインディング:WPFデータバインディングの仕組みとその使用方法を学びます。
データテンプレートとトリガー:データテンプレートとトリガーの仕組みと使用方法を学びます。
スタイル:WPFでUIをスタイル設定する方法について説明します。