Windows Presentation Foundationとは? わかりやすく解説

WPF

フルスペル:Windows Presentation Foundation
読み方ダブリューピーエフ

WPFとは、Microsoft開発したグラフィカルユーザーインターフェースGUI)を開発するためのグラフィックスサブシステムの名称である。開発コード名は「Avalon」だった。

WPFでは、「XAML」(Extensible Application Markup Language)と呼ばれるXMLベース描画マークアップ言語対応している従来ビットマップグラフィックスの他にベクタグラフィックスを扱うことが可能であり、3次元グラフィックス動画なども容易に扱えるようになった。これらのユーザーインターフェースは、テキストドキュメント含めて統一的なAPI用いて開発することができる。

また、WPFはパソコン搭載されGPUGraphics Processing Unit)を最大限活用する機能をもっている。これによりCPUの処理を他の作業割り当てることができ、グラフィック品質を向上させながら全体的なパフォーマンスを保つことができるとされる

WPFはMicrosoft Silverlight開発コード名WPF/E」)と呼ばれるサブセット持っているMicrosoft SilverlightXAMLJavaScriptによって様々なプラットフォームアプリケーション描画再現することができる。

WPFは.NET Framework 3.0WinFX)の根幹となる技術のひとつで、.NET Framework 3.0とともにWindows Vistaにおいて初め採用された。ただし.NET Framework 2.0サポートしているWindows XPWindows Server 2003上でもWPFを動作させることができる。


参照リンク
Windows Presentation Foundation - (Microsoft
UIのほかの用語一覧
GUI:  チェックボックス  ツールバー  Web Forms  WPF  WIMP  Xcode  XMB

Windows Presentation Foundation

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/16 13:52 UTC 版)

Windows Presentation Foundation (WPF) はマイクロソフトが開発した、.NET Framework 3.0以降に含まれるユーザインタフェースサブシステムである。開発時のコードネームAvalonであった[1][2]

概要

WPFは、ユーザインタフェースとロジックを明確に区別する一貫したプログラミングモデルを提供する。 WPFアプリケーションデスクトップで実行するだけでなくウェブブラウザ上で配置・実行することもできる(ただし類似技術のSilverlightとは違い、Windowsのみがターゲット環境となる)。 WPFによって、ユーザインタフェース、2Dおよび3Dオブジェクトの描画、ベクトルグラフィックスラスターグラフィックスアニメーション、音声および動画の再生などといった表現手法を統一的に利用することができる。WPF以前のWindowsアプリケーション開発では、それらを実現するためにはGDI/GDI+、DirectX Graphics (Direct3D他)、DirectX Audio (DirectSound他)[3][4]、WindowsマルチメディアAPI、DirectShowといった個別のWindows APIを使って実装しなければならなかった。

.NET Framework 3.0はWindows Vistaプリインストールされており、Windows XP SP2およびWindows Server 2003でも利用できる。また、Windows 7には.NET Framework 3.5 SP1がプリインストールされている。WPFのバージョン番号は、それが含まれる.NET Frameworkのバージョンと同列に扱われることが多い。例えば.NET 3.0上で動作するものはWPF 3.0、.NET 3.5/3.5 SP1で機能拡張されたものはWPF 3.5、そして.NET 4で機能拡張されたものはWPF 4といった具合である。 なお、Windows 8には.NET 4.5が、Windows 8.1には.NET 4.5.1が、Windows 10には.NET 4.6が、そしてWindows 11には.NET 4.8がプリインストールされており、WPF 4.5以降を標準的に利用できるが、逆に.NET 3.5以前のコンポーネントは標準で有効になっていないため、WPF 3.0/3.5アプリケーションを動作させるためには明示的なインストールが必要である[5]

特徴

次に示すのはWPFの特徴の一部である。

グラフィックス

全てのグラフィックスはDirect3Dを介して描画される。 また、可能であればGPUによるハードウェアアクセラレーションが使用される。 これにより、高速かつ高度なグラフィックを統一されたインタフェースで実現・利用することができる。

  • Direct3Dを通して描画することにより、グラフィックスハードウェア上のGPUに描画処理の一部を任せることが可能になる。これは(GDI/GDI+で問題となっていた)CPUの負荷を軽減することにつながる。
  • ベクトルグラフィックスをサポートする。これは損失のない拡大縮小を可能にする。
  • 3Dモデルのレンダリング相互作用をサポートする。Viewport3DのようなWPFフレームワーク自体に組み込まれた機能のほか、D3DImageのようなDirect3D相互運用性も備えている。
  • DPI環境に標準対応している (System DPI Aware)[6]。Per-Monitor DPI Awareに関しては、.NET 4.6.2およびWindows 10 Anniversary Update以降の環境で利用可能である[7][8]

Rendering Tier

WPFではグラフィックスハードウェア(グラフィックスカード/グラフィックスチップ)のDirectX (Direct3D) 対応レベルに応じて、GPUアクセラレーションの有無が決定される。

WPF 3.5までは下記のようになっている[9]

  • Rendering Tier 0: GPUアクセラレーションなし。DirectX 7.0未満。
  • Rendering Tier 1: 一部GPUアクセラレーションあり。DirectX 7.0以上、DirectX 9.0未満。
  • Rendering Tier 2: ほとんどの機能がGPUアクセラレーションを使う。DirectX 9.0以上(VRAM搭載量120MB以上、頂点シェーダー2.0以上など)。

一方、WPF 4以降は下記のように変更されている[10]

  • Rendering Tier 0: GPUアクセラレーションなし。DirectX 9.0未満。
  • Rendering Tier 1: いくつかの機能はGPUアクセラレーションを使う。DirectX 9.0以上。
  • Rendering Tier 2: ほとんどの機能がGPUアクセラレーションを使う。DirectX 9.0以上(VRAM搭載量120 MB以上、頂点シェーダー2.0以上など)。

印刷

WPFは標準でXPSフォーマット (XPS API) をサポートし、画面に表示されているUIElementツリーをそのまま印刷に使用することができる (WYSIWYG)。なお、WPF同様に、画面描画をGPUアクセラレートする技術にDirect2Dが存在するが、Direct2D 1.0は印刷デバイスへの出力を直接サポートしないので、こちらはGDI/GDI+などを併用する必要がある。Direct2D 1.1ではメタデータ出力による印刷機能が追加されている。

配置

WPFは通常のスタンドアローンアプリケーションだけでなく、XAMLブラウザアプリケーション英語版 (XBAP) として配置することもできる。

相互運用性

  • WPFはWin32(ネイティブコード)との相互運用機能を提供する。Win32のコード内からWPFを利用する(例:HwndHostクラスの合成、アセンブリのCOM公開など)ことも、WPFからWin32のコードを利用する(例:HwndHostクラスの継承D3DImageクラスなど)ことも可能である。
  • Windows Formsとの相互運用も可能である(ElementHostWindowsFormsHostクラス)。

なお、WPFのUI上に配置されたWin32あるいはWindows FormsによるレガシーなUIコントロールの描画に対しては、GPUアクセラレーションが効かない(GDI/GDI+によって描画される)ので注意が必要である。

マルチメディア

  • WPFはブラシ、ペン、幾何図形、変形などの基本的な2Dグラフィックス機能を提供する。
  • WPFで提供される3D機能はDirect3Dのサブセットである。しかし、WPFではよりユーザインタフェースなどの要素に密接に利用することができる。これによって3DのUI、文書、メディアなどが可能になる。
  • 一般的なラスター画像フォーマットをサポートする。
  • WMVMPEGAVIフォーマットの動画をサポートする。
  • 時間ベースのアニメーションをサポートする。これはシステムのパフォーマンスに依存せずアニメーションのスピードを一定に保つ。
  • ClearTypeを利用したテキストレンダリングをサポートする。また、OpenTypeフォントの機能もサポートする。WPF 4以降はDirectWriteコンポーネントとの統合が図られており、縦方向のClearTypeアンチエイリアスが有効となる。

データバインディング

WPFは次に示す3種類のデータバインディングをサポートする。

  • one time: クライアントはサーバ上のアップデートを無視する。
  • one way: クライアントはデータに対して書込み禁止の権限をもつ。
  • two way: クライアントは読み込みと書き込み両方の権限をもつ。

ユーザインタフェース (UI)

WPFのUIはXAMLと呼ばれるXMLベースのマークアップ言語で記述され、対応するイベントハンドラなどをC#あるいはVB.NETなどの.NET系言語で記述することになる(コードビハインド英語版)。これはWPFの強力な利点のひとつであり、ロジックインターフェイスを完全に切り離すことができる。

  • ボタンメニュー、リストボックスなどといった基本的な組み込みコントロールが提供される。
  • UI要素の機能拡張や外観のカスタマイズ(カスタムテンプレートの作成)が、Win32あるいはWindows Formsと比べて容易である。
  • XAML拡張構文(Bindingマークアップ拡張[12])を用いたデータバインディングにより、コードビハインドを記述することなくデータソースもしくはユーザインタフェース変更の反映や連動を実現することもできる。

なお、XAMLを使わずにC#、VB.NET、C++/CLIなどの.NET言語を使い、UIをコードベースで組み立てていくことも可能ではあるが、IDE搭載のXAMLエディターおよびXAMLデザイナーを利用してXAMLベースでUIを記述するほうが直感かつ効率的に階層構造を構築できる。

入力

WPFはマウスおよびキーボード入力をサポートするほか、System.Windows.Controls.InkCanvasにより、スタイラスペンを使用した入力にも対応する[13]。WPF 4以降は、Windows Formsでは標準対応されていないWindowsタッチAPI(マルチタッチ)に対するラッパーを提供する[14]

類似技術

XAMLファミリーとして、いくつかのWPF類似技術がマイクロソフトによって開発されている。

Silverlight

SilverlightはマイクロソフトによってAdobe Flashの競合技術として開発された。Silverlightは主にブラウザ上での実行を想定しているのに対し、WPFはよりクライアントPC環境に密着したスタンドアローン向け技術である。また、Silverlightで使用される.NET Frameworkは基本的に.NET Compact Frameworkのような機能制限付きサブセットであるが、WPFで使用される.NET FrameworkはWindows PC環境向けのフルセットである点も異なる。

Windowsストアアプリ

Windows 8/Windows RTにおいて導入されたWindowsストアアプリ(WinRTアプリ、Modern UIアプリケーション)はWPF同様XAMLによってユーザインタフェース要素を記述し、WPFに類似したプログラミングモデルを提供する。C#やVB.NETといったマネージ言語だけでなく、ネイティブ言語(C++)からも利用できることが特徴である。Windows 10においてWindowsストアアプリの後継として導入された、ユニバーサルWindowsプラットフォーム (Universal Windows Platform, UWP) アプリケーションも基本は同様である。

関連項目

脚注

  1. ^ Beta Experience - Avalon”. 2016年5月29日時点のオリジナルよりアーカイブ。2016年4月17日閲覧。
  2. ^ WPF(Windows Presentation Foundation)+XAML入門 前編 (1/4):CodeZine(コードジン)”. 2016年4月17日閲覧。
  3. ^ DirectX 8.0 の紹介”. Microsoft Docs. 2015年3月11日閲覧。
  4. ^ オーディオのリファレンス”. Microsoft Docs. 2015年3月11日閲覧。
  5. ^ Windows 11、10、8.1、8 に .NET Framework 3.5 をインストールする - .NET Framework”. Microsoft Learn. 2022年12月10日閲覧。
  6. ^ 田中達彦 (2014年7月24日). “アプリの高DPI(High DPI)対応について 第2回 ~ アプリケーションの高DPIへの対応レベル ~”. Microsoft Learn. MSDN Blogs. 2022年12月10日閲覧。
  7. ^ Announcing .NET Framework 4.6.2 | .NET Blog”. 2017年3月20日閲覧。
  8. ^ .NET Framework 4.6.2 を発表”. Microsoft Docs. 2017年3月20日閲覧。
  9. ^ Graphics Rendering Tiers”. Microsoft Docs. Docs Previous Versions / .NET / .NET Framework 3.5 / Windows Presentation Foundation / Application Development / Performance. 2015年8月8日閲覧。
  10. ^ Graphics Rendering Tiers”. Microsoft Docs. Docs Previous Versions / .NET / .NET Framework 4 / Windows Presentation Foundation / Application Development / Performance. 2015年8月8日閲覧。
  11. ^ Windows Presentation Foundation XAML ブラウザ アプリケーションの概要”. Microsoft Docs. 2016年4月17日閲覧。
  12. ^ バインディングのマークアップ拡張機能”. Microsoft Docs. 2015年3月11日閲覧。
  13. ^ デジタル インクを収集する - WPF .NET Framework | Microsoft Docs
  14. ^ チュートリアル: 初めてのタッチ アプリケーションの作成 - WPF .NET Framework | Microsoft Docs
  15. ^ WPF UIを使ったVisual Studio 2010のスクリーンショットが初披露”. InfoQ. 2015年3月12日閲覧。

外部リンク


「Windows Presentation Foundation」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Windows Presentation Foundation」の関連用語

Windows Presentation Foundationのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Windows Presentation Foundationのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2024 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【WPF】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのWindows Presentation Foundation (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2024 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2024 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2024 GRAS Group, Inc.RSS