私はWPFを見てきましたが、(15分を除いては、この質問を促しました)WPFを実際に使ったことはありませんでした。私はこのpostを見ましたが、実際にはWPFの "Flash"についてです。では、Windows FormsアプリケーションとWPFアプリケーションの違いは何ですか?WPFとは何ですか?また、WinFormsとの比較はどうですか?
答えて
WPFは、WinFormsではないベクターグラフィックスベースのUIプレゼンテーションレイヤーです。それはなぜ重要な/面白いのですか?ベクトルベースであることにより、プレゼンテーションレイヤーは、歪みなくUIエレメントを任意のサイズに円滑に拡大縮小することができます。
WPFはまた、構成可能なプレゼンテーションシステムです。つまり、ほとんどのUI要素は他のUI要素で構成できます。これにより、簡単なものから複雑なUI要素を簡単に構築できます。
WPFも完全にデータバインディングに対応しています。つまり、UI要素のプロパティを.NETオブジェクト(またはオブジェクトのプロパティ/メソッド)、別のUI要素のプロパティ、またはデータにバインドできます。はい、WinFormsはデータバインディングをサポートしますが、はるかに限定された方法です。
最後に、WPFは開発者として必要な振る舞いであり、誰かがまったく違うように見せかけることができるため、リストボックスを使用することができる「スキン可能」または「テーマ設定可能」です。
画像のリストボックスを考えてみましょう。コンテンツを実際にイメージにしたいが、依然としてリストボックスの動作が必要です。これは、単純にリストボックスを使用し、コンテンツのプレゼンテーションをテキストではなく画像を含むように変更するだけで、WPFで行うのはまったく簡単です。
私は、WinFormでは、どんなプロパティにもほとんどバインドできます。そのため、DataBindings.Add()はstring、object、stringを取ります。したがって、リフレクションを使用してプロパティを結合することができます。 – Quibblesome
SilverlightはWPFのXAML機能のサブセットを使用しているため、WPFベースのアプリケーションをプログラミングする方法が分かっているので、Silverlightアプレットはとても簡単です。 –
したがって、ユーザーはWPFとWinFormの違いを伝えることができますか? – Kredns
質問に答えるには、WPFアプリケーションは Windowsアプリケーションです。 WPFは、リッチなWindowsアプリケーションを作成するためのMicrosoftの新しいフレームワークです(実際には、.NET Framework 3.0のサブシステムです)。これはWinFormsの最終的な置き換えを意味します(しかし、採用率はMSが期待していたよりもはるかに低速です)。
これを見る良い方法は、Winformsが何であるかを尋ねることから始まるかもしれません。
WinformsとWPFはどちらも、アプリケーションのUIレイヤーをコード化しやすくするためのフレームワークです。ここの周りの本当に古い人は、Windows版「Hello、World」を書くのに4ページ程度のコードを書くことができるかどうかについて話すことができます。また、岩石はそれほど柔らかくなく、コーディング中に巨大なトカゲと戦わなければなりませんでした。 Winformsライブラリとデザイナーは多くの一般的なタスクを必要とし、書きやすくします。
WPFは同じことをしますが、Winformsが必ずしもUIレイヤーの一部であるとは考えていなかった多くの要素を含めることに加えて、これらの共通のタスクにははるかに視覚的に興味深いものが含まれている可能性を認識しています。 WPFがコマンド、トリガ、およびデータバインディングをサポートする方法は、フレームワークの大きな部分ですが、その主な理由は、Winformsが最初に存在していたのと同じ根本的な理由です。
WPFの改善点は、完全にカスタムコントロールを作成するか、カスタマイズ機能が限定された単一のコントロールセットを使用するかを選択する代わりに、コントロールの機能をその外観。コントロールがXAMLでどのように見えるかを記述し、コントロールがコード内でどのように動作するかを区別する能力は、Webプログラマーが慣れているHTML /コードモデルに非常に似ています。
優れたWPFアプリケーションは、優れたWinformアプリケーションと同じモデルに従います。 UIレイヤーからできるだけ多くのものを保ちます。アプリケーションとデータレイヤのコアロジックは同じでなければなりませんが、ビジュアルをより印象的なものにする簡単な方法があります。 WPFを学ぶことを望んでいるなら、実際にはWinformsとほぼ同じように使用してから、それを把握しながら他の機能をリファクタリングすることから始められます。これの優れた例として、私は、BabySmashの開発に関するScott Hanselmanの一連のブログ記事、which start hereを強くお勧めします。これは、コードと思考の両方で、プロセスの大きなウォークスルーです。
ここでスタート、動画の数十と数十があります:http://www.windowsclient.net/learn
はこの場合、マーケティングschpielはかなり良いです:
**「Windowsフォームその.NET FrameworkのクラスのセットですWPFとWindows Formsの相互運用性を.NET 3.5フレームワークで実現することができます」*
* "WPF、Microsoft .NET Frameworのコンポーネントk 3.5は、次世代のWindowsユーザーエクスペリエンスの構築を可能にします。 WPFは、UI、メディア、ドキュメント、ハードウェアアクセラレーション、ベクターグラフィックス、さまざまなフォームファクタに対するスケーラビリティ、インタラクティブなデータの視覚化、優れたコンテンツの可読性をサポートします。データバインディング(あなたがデータで作業している場合は、WPFを使用しています。)のWinForms技術はGDI/GDI +に依存するが
WPFは。 W indows P resentation F oundationの略で、WPFはの上に直接構築されていますDirectXを使用すると、.NET Frameworkクラスライブラリを使用しながら、WinFormsでできること以上に多くのことを行うことができます。 2D/3Dゲーム、プレゼンテーションなどが含まれます。 WPFはFlash(swf)ムービーに似ていて、要素「Movie」はありません。 WPFは.NETに基づいており、リッチクライアントサイドWeb対応アプリケーションを構築するために使用できます。
- WPFは、基本的にWindowsプラットフォーム用のグラフィカルユーザーインターフェイスを作成するための新しいAPIです。
- WPFは、視覚的に見事なユーザーインターフェイスとともに、Windowsクライアントアプリケーションを構築するための単なる次世代のプレゼンテーションシステムです。
- WPFは、古いGDI/GDI +サブシステムに頼るのではなく、DirectX(Direct3D)の上に構築されています。
- WPFはベクトルグラフィックスベースのUIプレゼンテーションレイヤーで、ベクターレイヤーであるため、プレゼンテーションレイヤーは、UIエレメントをゆがみなしで任意のサイズにスムーズに拡大縮小できます。
- WPFは「スキン可能」で「テーマ対応」です。これは、WPFがあらゆるUIコントロールのルックアンドフィールを変更できることを意味します。
実装の観点から見ると、WPFは厳密に強制されるモデルビュービューモデルMV-VMアーキテクチャを使用し、ビューはカスタムマークアップ言語であるXAMLで定義され、ビューモデルはクラスにはアクセス可能なプロパティがあり、モデルは事実上データアクセスレイヤーです。 WinFormsでは、このような明示的な分離はありませんが、慣習的には異なるアスペクトが異なるC#ファイルにグループ化されていても、すべての静止コードがグループ化されています。実際には、これによりWPF開発はWeb DOM開発のようになり、WPFフレームワークはバックグラウンドで実行され、仲介します。
- 1. ウェブページ比較ツールとは何ですか?
- 2. WPFとWinFormsの違いは何ですか?
- 3. WPFアプリケーションとwinformsアプリケーションの違いは何ですか?
- 4. Asp.net(MVC)とWPF(MVVM)の比較 - データバインディングは同等ですか?
- 5. WPF/C#の名前比較は何を意味しますか?
- 6. データベースとのデータの比較はどのようにですか?
- 7. Google Appsマクロ - Office VBAマクロとの比較はどうですか?
- 8. Juliaの "=="と "==="比較演算子の違いは何ですか?
- 9. 高価、比較または割り当ては何ですか?
- 10. バイナリ検索の比較とは何ですか?
- 11. リファレンスの比較演算子とは何ですか?
- 12. VBAの文字列比較アルゴリズムとは何ですか?
- 13. Formtasticとsimple_formはどのように比較されますか?
- 14. RTOSを比較するパラメータとは何ですか?
- 15. __eq__とインスタンスを比較する理由は何ですか?
- 16. P2PとDDNSの比較何を使うべきですか?
- 17. System.Reflection.RuntimePropertyInfoとは何ですか、それをどのように比較しますか?
- 18. MonoDevelop: "リソース"と比較してビルドアクション "コンテンツ"は何ですか?
- 19. cmovlオペコードの内容と比較すると何ですか?
- 20. SqlCommandと比較するにはどのように追加できますか?
- 21. タブコントロールのContainsKey()メソッドとは何が比較されますか?
- 22. jqueryと比較したGWTとは何か
- 23. 2つのオブジェクトを深い比較またはjson.stringifyと比較しますか?
- 24. WPFとWINFORMコントロールの比較
- 25. WPF ICommandとRoutedCommandの比較
- 26. イメージとJavaScriptを比較すると、より速いのは何ですか?
- 27. indexOfの結果を-1、 "!="または ">"と比較するときの優先演算子は何ですか?
- 28. charをregexpと比較することはできますか?
- 29. 私のテキストボックスは、何時でも「0」と比較されます。
- 30. ANTLRをFlex/Bisonと比較した場合の短所は何ですか?
私はこれが私にとって有用であることを発見しました[clear-code.blogspot.com/2012/04/what-is-wpf。html](http://clear-code.blogspot.com/2012/04/what-is-wpf.html) –