WPF
XAMLでUIを宣言的に記述する、Windows専用のデスクトップUIフレームワーク。ベクターベースの描画とデータバインディングを特徴とする。
- 概念URI
https://comcomponent.com/knowledge/wpf/
- 別名・表記
- Windows Presentation Foundation
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- WPFはBinaryFormatterを利用します。WPFはデザイナーのシリアライズやクリップボード・drag & dropの経路でBinaryFormatterに依存することがある / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはWindows専用API依存を利用します。WPFはWindows専用のままであり、周辺のWindows専用APIに依存し続けることが多い / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはtrimming(トリミング)と両立しません。WPFはreflectionと実行時のコード検査への依存が強くtrimming後にほぼ動かないため、.NET SDK側でtrimmingサポートが無効化されている / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFをNative AOTに用いることは推奨されません。trimmingとの相性が悪いため、WPF本体を最初のNative AOT候補にするのは慎重に見るべきとされる / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはGeneric Hostを利用します。Generic Hostを採用する構成では、WPFアプリはApp.OnStartupでHostをbuild・startし、起動とlifetimeの管理をGeneric Hostに任せられる。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- Windowsデスクトップアプリ開発はWPFを利用します。WPFはWindowsデスクトップアプリ開発の技術要素の一つとして扱われる / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WinUI(Windows App SDK)はWPFと両立しません。WinUIは既存のWPF資産の持ち込みが容易ではない / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはAutomationIdを利用します。WPFではx:Nameを付けた要素がそのままUIA側の識別子として使われ、テンプレート内などはAutomationProperties.AutomationIdを明示する / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- FlaUIはWPFを利用します。WPFアプリを自動化する場合、UIA3の実装であるFlaUI.UIA3を使うのが実務の目安である / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはWindows Formsを前提とします。WPFアプリでトレイ常駐を実装する最小構成は、csprojでUseWPFとUseWindowsFormsを併用してWinFormsのNotifyIconを使うことである / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはWindowsランナー(windows-latest)を前提とします。WPFプロジェクトも同様にWindows専用TFMを対象とするが、EnableWindowsTargetingを有効にすればLinux上でもビルドできる。Windowsランナーが要るのは実行を伴う手順である。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはMSAL.NETを利用します。Entra ID認証を実装する場合、WPF業務アプリも同じMSAL.NETライブラリを利用する。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはresxリソースファイルを利用します。多言語化する場合、WPFアプリもWinFormsと共通の共有resx方式を第一候補として使う、というのが本記事の推奨である。WPFにはXAMLのリソース辞書やLocBamlなど別の多言語化手段もある。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはBAML(Binary Application Markup Language)を利用します。WPFアプリはXAMLそのものではなく、ビルド時にコンパイルしたBAMLをアセンブリに埋め込んで実行時に読み込む。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはx:Static参照(resx)を利用します。実行時の即時切り替えを必要としない場合、WPFのresx方式はXAMLからx:Staticでresxの値を参照する形が実務の第一候補になる。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- x:Static参照(resx)はWPFに対する本記事の推奨です。WPFの多言語化は、LocBaml方式ではなくresx+x:Staticバインディング方式を第一候補にすることが本記事の推奨である。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFは右から左へ書く言語(RTL)対応で構成できます。WPFの右から左へ書く言語対応は、FlowDirectionプロパティで構成する。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはCultureInfo.CurrentCultureを利用します。WPFの日付・数値表示の書式は要素のLanguage(既定はen-US)で決まるため、FrameworkElement.LanguagePropertyをCurrentCultureに同期させた場合に限り、WPF画面の表示もCurrentCultureの書式に従う / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはCultureInfo.CurrentUICultureを利用します。WPFのリソース参照も、CurrentUICultureに応じて読み込む言語リソースが決まる。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはXAMLを利用します。WPFはXAMLで画面を宣言的に記述するUIフレームワークである。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはデータバインディングを利用します。WPFはデータバインディングを中心機能の1つとして持つ。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはMVVM(Model-View-ViewModel)を利用します。MVVMパターンを採用する場合、WPFはXAML・データバインディング・コマンドを通じて実践しやすい。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはWindows App SDKを利用します。UI全面移行はせず機能だけ足したい場合、既存WPFアプリにも、App Lifecycle・Windowing・Toast NotificationsなどWindows App SDKの機能を追加できる。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFはXAML Islandsを利用します。段階移行を小さく検証する場合、XAML Islandsは既存WPFアプリの一部にWinUI系のコントロールを埋め込む仕組みとして使える。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- WPFは画面数の多い中〜大規模業務アプリに対する本記事の推奨です。画面数が多く、データバインディング・スタイル・テンプレート・MVVMを使いたい中〜大規模の業務アプリでは、WPFが本記事の推奨である。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはWinUI(Windows App SDK)より先に行うべきです。既存WPFアプリが大きい場合は、WinUIへの全面移行を検討するより先に、まずWPF継続を基本に見るべきとされる。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはDIP(デバイス非依存単位)を利用します。WPFはXAMLに書くWidth/Heightなどの座標・サイズを1/96インチを1とするDIPで扱う / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはSystem DPI Awareの実装を担います。WPFは何も宣言しなくてもSystem DPI Awareとして動作する / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはWindowsFormsHostを利用します。本記事のようにWPFアプリの中にWindows Formsのコントロールを埋め込みたい場合は、WindowsFormsHostを使う(埋め込みが不要な大半のWPFアプリでは使わない) / 確度: 条件付きの関係 / 確認日: 2026-08-02 出典
- WPFはSynchronizationContextを利用します。WPFのUIスレッドにはDispatcherSynchronizationContextが設定されており、SynchronizationContext.Currentとして取得できる。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WPFはDispatcher(WPF)を利用します。WPFはUIスレッド用のメッセージキューであるDispatcherを持ち、明示的にUIへ戻す代表APIはDispatcher.InvokeAsyncである。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。