初心者のためのWPFチュートリアル:アプリケーションの作成方法【例】

WPFとは?

WPF 構築するためのフレームワークです Windows ユーザーが少ないコードで 3D アニメーションと豊かな色彩を備えたリッチなユーザー インターフェイスを開発できるアプリケーションplex性。これは、最新のグラフィック カードのハードウェア アクセラレーションを使用するベクトル ベースのレンダリング エンジンであり、Ul をより高速かつ高度にスケーラブルにします。 WPFの略です Windows プレゼンテーション Foundation.

WPF は WinForms の進化版と考えることができます。簡単に生成できます operaのためのグラフィカル表示システム Windows。これにより、UI とビジネス ロジックを簡単に分離できます。

WPF アプリケーションをデプロイできるyed スタンドアロンのデスクトップ プログラムとしてシステム内で使用することも、Web サイト内の埋め込みオブジェクトとしてホストすることもできます。

なぜ WPF なのか?

WPF プラットフォームを使用する理由はたくさんありますが、代表的なものとしては次のようなものがあります。

  • さまざまな種類のメディアを扱う必要がある場合に使用する理想的なプラットフォーム
  • WPF を使用すると、スキンされたユーザー インターフェイスを作成できます。 UI の一部をロードする必要がある場合や、XML データをバインドする必要がある場合にも役立ちます。
  • これにより、大規模な .NET クラス ライブラリが構築されているため、その利点を活用できます。 .NETテクノロジー
  • 解像度に依存しないため、WMF を使用して開発されたアプリケーションはモバイル デバイスまたは 20 インチ モニターで実行できます。
  • WPF は WinAPI ではなく DirectX に基づいて構築されます。 クライアント コンピュータのグラフィック システムを提供します。 したがって、より優れたグラフィック レンダリング能力を提供します
  • 「デスクトップ パブリッシング」品質のレイアウトを可能にするフロー ドキュメント モデルをサポートします。
  • 見た目と行動は疎結合です。 これにより、デザイナーと開発者は XNUMX つの別々のモデルに取り組むことができます。
  • WMF フレームワークでは、コードを解析する代わりに、単純な XML ドキュメント上でツールをグラフィカルにデザインできます。
  • ドラのハードウェアアクセラレーションを使用できるようにしますwing パフォーマンス向上のための 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の特徴

WPFの特徴
WPFの特徴
  • 文書と印刷
  • セキュリティ、アクセシビリティ、ローカリゼーション
  • オファーインターoperaとの能力 Windows フォームコントロール
  • Direct3D は、パフォーマンスが重要なグラフィック アプリケーションで使用されます。
  • レンダリングにビデオ カード ハードウェアを使用します
  • ベクターベースのグラフィックスにより、品質を損なうことなくアプリケーションを拡張できます。
  • WPF は浮動小数点論理ピクセル システムと 32 ビット ARGB カラーをサポートします
  • スタイルとコントロール テンプレートを再定義する
  • 複合フォントから国際フォントを構築する
  • WPF テキスト レンダリングは、ClearType テクノロジを活用するのに役立ちます
  • ビデオ メモリ内の事前レンダリングされたテキストのキャッシュ技術を使用できるようにします。
  • あらゆる制御に対するリソースベースのアプローチ
  • プレゼンテーション タイマーは WPF によって初期化および管理されます
  • 動画とアニメーションの連携にも対応
  • WPF では、スタイルは視覚的なレンダリングに使用されるコンテンツに適用されるプロパティのセットです。
  • WPF のテンプレートを使用すると、ドキュメントの Ul を変更できます
  • コマンドはより抽象的で疎結合されたイベントのバージョンです
  • コマンドの WPF サポートにより、記述する必要があるコードの量が削減されます

この WPF の次へ C# チュートリアルでは、WPF のコアの種類とインフラストラクチャについて学習します。

WPF コアの種類とインフラストラクチャ

WPF のクラスは、次の XNUMX つの異なるタイプに分類されます。

  • UI要素
  • フレームワーク要素
  • コンテンツ要素
  • フレームワークコンテンツ要素

これらのクラスは、基本要素クラスと呼ばれます。それは、 foundation ユーザーインターフェイスを構成するモデルの場合。

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 などのユーザー情報
  • メニュー、ボタン、ツールバーなどのアクション
  • Border、WPF Image、View などの外観box
  • コモンダイアログ boxOpenFileDialog や PrintDialog など。
  • TabContro、ScrollBar、Group などのコンテナーBox
  • DocPanel、StackPanel、Grid などのレイアウト
  • フレームやハイパーリンクなどのナビゲーション

コントロールの外観は、プログラミングを行わずにスタイルとテンプレートを使用してカスタマイズできます。 適切な基本クラスから新しいクラスを派生してカスタム コントロールを作成することもできます。

外観

WPF は、アプリケーションの外観をカスタマイズする機能を提供します。 フォントや背景などのオブジェクトと値を設定できます。

スタイル機能を使用すると、製品全体の特定の外観を標準化できます。 これにより、デフォルトの動作を維持したまま、デフォルトの外観を置き換えることができます。

データ テンプレートを使用すると、バインドされたデータのデフォルトの視覚化を制御できます。テーマを使用すると、スタイルを簡単に視覚化できます。 operaティングシステム。

レイアウトとパネル

レイアウトは、適切な配置とサイズの制御に役立ちます。 これは、ユーザー向けのプレゼンテーションを作成するプロセスの一部です。 WPF フレームワークにより、レイアウト プロセスが容易になり、UI の外観の適応性が向上します。

レイアウト インフラストラクチャは、1) StackPanel、2)DockPanel、3)WrapPanel、4)Grid、および 5) のさまざまなクラスによって提供されます。 Canvas

グラフィック

WPF は、次のような改良されたグラフィックス システムを提供します。

  • WPF はデバイスに依存しない単位を使用し、解像度とデバイスに依存しないようにします。 したがって、デバイスに依存しない各ピクセルは、XNUMX インチあたりのドット数設定システムに従って自動的にスケールされます。
  • WPF が使用するもの double float の代わりに、より幅広い色の配列をサポートします
  • WPF グラフィックス エンジンは、グラフィックス ハードウェアが利用可能な場合にそれを活用できるように設計されています。

文書と印刷

WPF フレームワークは、次の XNUMX 種類のドキュメントを提供します。

  • 修正されたドキュメント: このタイプのドキュメントは WY をサポートしますSIWYGのプレゼンテーション。
  • フロードキュメント: ウィンドウ サイズやデバイス解像度などのランタイム変数に基づいてコンテンツを調整およびリフローできます。
  • XPS ドキュメント: elec のページ分割された表現ですtronXML ベースの形式の ic ペーパー。 XPS は、オープンソースのクロスプラットフォームのドキュメント形式です。

WPF を使用すると、印刷システムをより適切に制御できます。 これには、リモート印刷とキューが含まれます。 さらに、XPS ドキュメントを印刷形式に変換せずに直接印刷することもできます。

WPF Archi構造

WPF は .NET Framework の一部です。これには、マネージ コードとアンマネージ コードの両方が含まれます。 WPF の重要なコンポーネント archi構造については、次の図で説明します。

WPF Archi構造
WPF Archi構造

WPF のコンポーネント archi構造

  • プレゼンテーションフレームワーク: コントロール、スタイル、レイアウト、 windows, etc.
  • プレゼンテーションコア: 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 アプリケーションを開発します。 それでは、次のように簡単な実装を始めましょうwing 以下の WPF アプリケーション例に示されている手順。

ステップ1) In Visual Studio 「ファイル」>「プロジェクト」に移動します

最初の WPF アプリケーションを作成する

ステップ2) 新しいプロジェクトウィンドウで

  1. WPF アプリを選択します
  2. 名前を「MyWPF」と入力します
  3. [OK]をクリックします。

最初の WPF アプリケーションを作成する

ステップ3) Visual Studio デフォルトで 2 つのファイルが作成されます

  • XAML ファイル (MainWindow.xaml)
  • CS ファイル (MainWindow.xaml.cs)

最初の WPF アプリケーションを作成する

MainWindow.xaml には、

  1. デザインウィンドウ
  2. XAMLファイル

最初の WPF アプリケーションを作成する

XAML では windows、以下wing タグはデフォルトで書かれています

最初の WPF アプリケーションを作成する

デフォルトでは、グリッドが最初の要素になります。

MainWindow.xaml.cs には、XAML デザイン ファイルの背後にある対応するコードが含まれています

最初の WPF アプリケーションを作成する

ステップ4) ツール内box,

  1. テキストをドラッグするBox 要素をデザインウィンドウに追加する
  2. 文章Box デザインウィンドウに表示されます
  3. Text の XAML コードが表示されます。Box 追加されました

最初の WPF アプリケーションを作成する

ステップ5) テキストを「最初の WPF プログラム」に変更します。

最初の WPF アプリケーションを作成する

ステップ6) スタートボタンをクリック

最初の WPF アプリケーションを作成する

ステップ7) 出力にウィンドウが表示されます

最初の WPF アプリケーションを作成する

おめでとう! 最初の 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 には、box コントロールスイートは制限されています に-box コントロールは非常に強力です

WPF で構築されたアプリケーションの種類

  • WPF は Web フォームを置き換えようとしています。 windows フォーム - ブラウザまたはスタンドアロン ウィンドウで実行するようにアプリを構築できます
  • Windows フォームと WPF ページは同じアプリケーション内で共存可能
  • ページ/ウィンドウアプリケーションを開発できます

クイックガイド

  • WPF の完全な形式は次のとおりです。 Windows プレゼンテーション Foundation
  • さまざまなメディアタイプを扱う必要がある場合に使用するのに理想的なプラットフォームです
  • Windows 1.0 は、最初の GUI 環境でした。 Microsoft これは DOS 上で動作し、GDI および USER システムに依存していました。
  • .NET の WPF はインターを提供しますoperaとの能力 Windows フォームコントロール
  • WPF は、UIElement、FrameworkElement ContentElement、FrameworkContentElement の XNUMX つの異なるタイプに分かれています。
  • WPF の一部の最も重要なコンポーネント archiテクノロジは、PresentationFramework、PresentationCore、CLR、Milcore、DirectX、User32、および Kernel です。
  • WPF は新しいフレームワーク コンポジットですares WinForms なので、現在の標準により適合しています
  • Windows フォームと WPF ページは同じアプリケーション内で共存可能