初心者のためのWPFチュートリアル:アプリケーションの作成方法【例】
WPFとは?
WPF 構築するためのフレームワークです Windows 3Dアニメーションや豊かな色彩を備えたリッチなユーザーインターフェースを、コードの複雑さを抑えながら開発できるアプリケーション。これはベクターベースのレンダリングエンジンで、最新のグラフィックカードのハードウェアアクセラレーションを使用して、Ulをより高速かつ高度にスケーラブルにします。WPFは Windows プレゼンテーション Foundation.
WPFはWinFormsの進化版ともいえます。操作が簡単なグラフィカル表示システムを実現します。 Windows。これにより、UI とビジネス ロジックを簡単に分離できます。
WPF アプリケーションは、スタンドアロンのデスクトップ プログラムとしてシステムに展開することも、Web サイトに埋め込みオブジェクトとしてホストすることもできます。
なぜ WPF なのか?
WPF プラットフォームを使用する理由はたくさんありますが、代表的なものとしては次のようなものがあります。
- さまざまな種類のメディアを扱う必要がある場合に使用する理想的なプラットフォーム
- WPF を使用すると、スキンされたユーザー インターフェイスを作成できます。 UI の一部をロードする必要がある場合や、XML データをバインドする必要がある場合にも役立ちます。
- これにより、大規模な .NET クラス ライブラリが構築されているため、その利点を活用できます。 .NETテクノロジー
- 解像度に依存しないため、WMF を使用して開発されたアプリケーションはモバイル デバイスまたは 20 インチ モニターで実行できます。
- WPF は WinAPI ではなく DirectX に基づいて構築されます。 クライアント コンピュータのグラフィック システムを提供します。 したがって、より優れたグラフィック レンダリング能力を提供します
- 「デスクトップ パブリッシング」品質のレイアウトを可能にするフロー ドキュメント モデルをサポートします。
- 見た目と行動は疎結合です。 これにより、デザイナーと開発者は XNUMX つの別々のモデルに取り組むことができます。
- WMF フレームワークでは、コードを解析する代わりに、単純な XML ドキュメント上でツールをグラフィカルにデザインできます。
- GUIの描画にハードウェアアクセラレーションを使用し、パフォーマンスを向上できます。
WPFの歴史
Windows 1.0 は、最初の GUI 環境でした。 Microsoft。 DOS 上のレイヤーとして動作し、グラフィックとユーザー インターフェイスには GDI と USER システムを使用します。
DirectX は 1995 年に高性能グラフィックス システムとして導入されました。 ゲームやその他のグラフィックス関連環境を対象としていました。 長年にわたり、mange.Net コードで使用するライブラリを提供する Directx9 とともに多くのバージョンがリリースされています。
WPFのバージョン | リリース年 | .Netバージョン | Visual Studio バージョン | 特徴 |
---|---|---|---|---|
3.0 | 2006 | 3.0 | 無し | 初回リリース。 ただし、WPF 開発は VS 2005 で実行できます。 |
3.5 | 2007 | 3.5 | VS2008 | 以下の変更と改善: アプリケーション モデル、バインディング、コントロール、ドキュメント、注釈、および 3-D Ul 要素。 |
3.5 SP1 | 2008 | 3.5 SP1 | 無し | ネイティブのスプラッシュ画面のサポート。 新しい Web ブラウザ コントロール、DirectX ピクセル シェーダのサポート。 |
4.0 | 2010 | 4.0 | VS2010 | 新しいコントロール: カレンダー。 データグリッド、DatePicker。 マルチタッチと操作 |
4.5 | 2012 | 4.5 | VS2012 | セットアップ時間が短縮され、ビットマップ効果のパフォーマンスが向上しました。 新しいコントロール: カレンダー。 データグリッド、DatePicker。 マルチタッチと操作 |
4.5.1 | 2013 | 4.5.1 | VS2013 | 新しいリボン コントロール 新しい INotifyDataErrorInfo インターフェイス |
4.5.2 | 2014 | 4.5.2 | NA | 大きな変化なし 大きな変化なし |
4.6 | 2015 | 4.6 | VS2015 | 透明な子ウィンドウのサポート HDPI とタッチの改善 |
5.0.6 年 2021 月にリリースされる WPF XNUMX の最新の安定バージョン。
WPFの特徴
- 文書と印刷
- セキュリティ、アクセシビリティ、ローカリゼーション
- 相互運用性を提供 Windows フォームコントロール
- Direct3D は、パフォーマンスが重要なグラフィック アプリケーションで使用されます。
- レンダリングにビデオ カード ハードウェアを使用します
- ベクターベースのグラフィックスにより、品質を損なうことなくアプリケーションを拡張できます。
- WPF は浮動小数点論理ピクセル システムと 32 ビット ARGB カラーをサポートします
- スタイルとコントロール テンプレートを再定義する
- 複合フォントから国際フォントを構築する
- WPF テキスト レンダリングは、ClearType テクノロジを活用するのに役立ちます
- ビデオ メモリ内の事前レンダリングされたテキストのキャッシュ技術を使用できるようにします。
- あらゆる制御に対するリソースベースのアプローチ
- プレゼンテーション タイマーは WPF によって初期化および管理されます
- 動画とアニメーションの連携にも対応
- WPF では、スタイルは視覚的なレンダリングに使用されるコンテンツに適用されるプロパティのセットです。
- WPF のテンプレートを使用すると、ドキュメントの Ul を変更できます
- コマンドはより抽象的で疎結合されたイベントのバージョンです
- コマンドの WPF サポートにより、記述する必要があるコードの量が削減されます
この WPF の次へ C# チュートリアルでは、WPF のコアの種類とインフラストラクチャについて学習します。
WPF コアの種類とインフラストラクチャ
WPF のクラスは、次の XNUMX つの異なるタイプに分類されます。
- UI要素
- フレームワーク要素
- コンテンツ要素
- フレームワークコンテンツ要素
これらのクラスは、基本要素クラスと呼ばれます。これは、ユーザー インターフェイスを構成するモデルの基盤を提供します。
WPF ユーザー インターフェイスは、ツリー階層に組み立てられた要素で構成されます。 これを要素ツリーと呼びます。 要素ツリーは、ユーザー インターフェイスを直感的にレイアウトする方法です。 強力なUIサービスの機能を利用できる仕組みです。
XAML
「XAML」または「zammel」と呼ばれる拡張アプリケーション マークアップ言語は、ユーザー インターフェイスを定義する宣言型の方法です。
単純なボタンの XAML 定義は次のとおりです。
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
XAML 言語を使用する利点:
- XAML によるフロントエンドの外観とバックエンド ロジックの分離
- XAML はユーザー インターフェイスを表現する最も簡単な方法です
- XAML はツールと効果的に連携します
コントロール
WPF フレームワークは、次のような多くの便利なコントロールをサポートしています。
- テキストなどの編集コントロールBox、 チェックBox、 ラジオボタン
- ListなどのリストコントロールBox、リストビュー、ツリービュー
- ラベル、WPF ProgressBar、ToolTip などのユーザー情報
- メニュー、ボタン、ツールバーなどのアクション
- ボーダー、WPF イメージ、ビューボックスなどの外観
- OpenFileDialog や PrintDialog などの一般的なダイアログ ボックス。
- TabContro、ScrollBar、Group などのコンテナーBox
- DocPanel、StackPanel、Grid などのレイアウト
- フレームやハイパーリンクなどのナビゲーション
コントロールの外観は、プログラミングを行わずにスタイルとテンプレートを使用してカスタマイズできます。 適切な基本クラスから新しいクラスを派生してカスタム コントロールを作成することもできます。
外観
WPF は、アプリケーションの外観をカスタマイズする機能を提供します。 フォントや背景などのオブジェクトと値を設定できます。
スタイル機能を使用すると、製品全体の特定の外観を標準化できます。 これにより、デフォルトの動作を維持したまま、デフォルトの外観を置き換えることができます。
データ テンプレートを使用すると、バインドされたデータのデフォルトの視覚化を制御できます。テーマを使用すると、オペレーティング システムのスタイルを簡単に視覚化できます。
レイアウトとパネル
レイアウトは、適切な配置とサイズの制御に役立ちます。 これは、ユーザー向けのプレゼンテーションを作成するプロセスの一部です。 WPF フレームワークにより、レイアウト プロセスが容易になり、UI の外観の適応性が向上します。
レイアウト インフラストラクチャは、1) StackPanel、2)DockPanel、3)WrapPanel、4)Grid、および 5) のさまざまなクラスによって提供されます。 Canvas
グラフィック
WPF は、次のような改良されたグラフィックス システムを提供します。
- WPF はデバイスに依存しない単位を使用し、解像度とデバイスに依存しないようにします。 したがって、デバイスに依存しない各ピクセルは、XNUMX インチあたりのドット数設定システムに従って自動的にスケールされます。
- WPFはfloatの代わりにdoubleを使用し、より幅広い色彩をサポートします。
- WPF グラフィックス エンジンは、グラフィックス ハードウェアが利用可能な場合にそれを活用できるように設計されています。
文書と印刷
WPF フレームワークは、次の XNUMX 種類のドキュメントを提供します。
- 修正されたドキュメント: このタイプのドキュメントは WY をサポートしますSIWYGのプレゼンテーション。
- フロードキュメント: ウィンドウ サイズやデバイス解像度などのランタイム変数に基づいてコンテンツを調整およびリフローできます。
- XPS ドキュメント: これは、XML ベースの形式で電子ペーパーをページ分けして表現したものです。XPS は、オープン ソースのクロスプラットフォーム ドキュメント形式です。
WPF を使用すると、印刷システムをより適切に制御できます。 これには、リモート印刷とキューが含まれます。 さらに、XPS ドキュメントを印刷形式に変換せずに直接印刷することもできます。
WPF Archi構造
WPF は .NET フレームワークの一部です。マネージ コードとアンマネージ コードの両方が含まれています。WPF アーキテクチャの重要なコンポーネントについては、次の図で説明します。
WPFアーキテクチャのコンポーネント
- プレゼンテーションフレームワーク: コントロール、スタイル、レイアウト、ウィンドウなどの最上位要素の作成に役立ちます。
- プレゼンテーションコア: UIElement などの基本型を保持し、すべてのコントロールおよびシェイプからの Visual が PresentationFramework.dll で派生されます。
- CLR:次のような機能を提供することで、開発プロセスの生産性を高めます。 メモリ管理、エラー処理など。
- ミルコア: Milcore は、DirectX との緊密な統合を提供するアンマネージ コードの一部です。
- DirectXの: これは、WPF のグラフィックスのレンダリングを可能にする低レベル API です。 DirectX トークはドライバーと対話し、コンテンツをレンダリングします。
- ユーザー32: これは、多くのプログラムで広く使用されているコア API です。 メモリとプロセスの分離を管理します。 User32 は、どの要素を画面上のどこに配置するかを決定するのに役立ちます。
- カーネル: 入力はカーネル モード デバイス ドライバー上の信号として発生し、適切なプロセスにルーティングされ、 Windows カーネルとUser32。
WPFのインストール
WPF をインストールするには、このリンクを参照してください https://www.guru99.com/download-install-visual-studio.html
次に、この WPF アプリケーション チュートリアルでは、最初の WPF を構築します。
初めての WPF アプリケーションを作成するにはどうすればよいですか?
この WPF の例では、基本的な WPF アプリケーションを開発します。以下の WPF アプリケーションの例に示されている手順に従って、簡単な実装を開始しましょう。
ステップ1) Visual Studioでファイル > プロジェクトに移動します
ステップ2) 新しいプロジェクトウィンドウで
- WPF アプリを選択します
- 名前を「MyWPF」と入力します
- [OK]をクリックします。
ステップ3) Visual Studioはデフォルトで2つのファイルを作成します
- XAML ファイル (MainWindow.xaml)
- CS ファイル (MainWindow.xaml.cs)
MainWindow.xaml には、
- デザインウィンドウ
- XAMLファイル
XAMLウィンドウでは、次のタグがデフォルトで書き込まれます。
デフォルトでは、グリッドが最初の要素になります。
MainWindow.xaml.cs には、XAML デザイン ファイルの背後にある対応するコードが含まれています
ステップ4) ツールボックスでは、
- テキストをドラッグするBox 要素をデザインウィンドウに追加する
- 文章Box デザインウィンドウに表示されます
- Text の XAML コードが表示されます。Box 追加されました
ステップ5) テキストを「最初の WPF プログラム」に変更します。
ステップ6) スタートボタンをクリック
ステップ7) 出力にウィンドウが表示されます
おめでとう! 最初の WPF アプリケーションを設計して作成しました。 次に、この初心者向け WPF チュートリアルでは、WPF と WinForms の違いを見ていきます。
WPF と WinForms の比較
WPF | Winフォーム |
---|---|
これは新しいフレームワークであるため、現在の標準により適合しています。 | 古いものなので、より実証済みです。 |
柔軟性があり、機能も豊富です。 コーディングやコントロールの購入を行わなくても、非常にリッチなアプリケーションを設計できます。 | それほど機能が豊富ではない |
3人の開発者rd パーティー コントロールは、将来を見据えて WPF との互換性に重点を置いています。 | 購入または無料で入手できるサードパーティ製コントロールが多数あります。 |
XAML を使用すると、GUI を簡単に作成および編集できます。 これにより、デザイナー (XAML) とプログラマー (C#、ASP.net など) の間で作業を分割できます。 | In Windows 書かれたすべてのコードを 1 か所で形成します。 |
WPF は両方のユーザー インターフェイスを作成できます Windows Silverlight や XBAP などのアプリケーションと Web アプリケーション。 | そのようなサポートはありません |
WPFのインボックスコントロールスイートは制限されている | インボックスコントロールは非常に強力です |
WPF で構築されたアプリケーションの種類
- WPFはWebフォームとWindowsフォームを置き換えようとしています。アプリはブラウザまたはスタンドアロンウィンドウで実行するように構築できます。
- Windows フォームと WPF ページは同じアプリケーション内で共存可能
- ページ/ウィンドウアプリケーションを開発できます
クイックガイド
- WPF の完全な形式は次のとおりです。 Windows プレゼンテーション Foundation
- さまざまなメディアタイプを扱う必要がある場合に使用するのに理想的なプラットフォームです
- Windows 1.0 は、最初の GUI 環境でした。 Microsoft これは DOS 上で動作し、GDI および USER システムに依存していました。
- .NETのWPFは、 Windows フォームコントロール
- WPF は、UIElement、FrameworkElement ContentElement、FrameworkContentElement の XNUMX つの異なるタイプに分かれています。
- WPFアーキテクチャの最も重要なコンポーネントは、PresentationFramework、PresentationCore、CLR、Milcore、DirectX、User32、およびKernelです。
- WPFはWinFormsに比べて新しいフレームワークなので、現在の標準にもっと合っています。
- Windows フォームと WPF ページは同じアプリケーション内で共存可能