Windowsデスクトップアプリ開発にWPF

Windows デスクトップアプリケーション開発には、Windowsフォームのほか、WPF(Windows Presentation Foundation)プラットフォームの採用という選択肢があります。

WPFにはXAML(eXtensible Application Markup Language:ザムル)言語や、データバインディングといった、Windowsフォームには存在しない概念や、従来とは異なるグラフィック描画方式を採用しています。

このWPFの特性を理解し活用することで、Windowsフォームを超える開発生産性の高さで、柔軟な画面レイアウトが実現するアプリケーションが開発できます。

Windowsデスクトップアプリ開発にWPF

高解像度・高精細モニタ対応

WPFはデバイス非依存ピクセル(DIP)やベクターベースの描画を採用しているため、高DPI環境でも自動的にスケールされ、DPIスケーリングの方式の違いによる影響も受けることなく画面表示ができます。

Windowsフォームでは、解像度の高いモニタで表示されることを考慮しないと、レイアウトが崩れたり、コントロールがぼやけて表示されたりしますが、WPFでは開発者が意識することなく「画面解像度の多様化」、「モニタの高精細化」に対応できます。

開発環境も高DPIに対応

SPREADを利用した画面開発時に必須の専用GUIデザイナは、WPFで構築されたデスクトップアプリケーションなので、高DPIの開発環境で快適な開発ができます。

Windowsフォームでは専用デザイナもWindowsフォームで開発しているため高DPIには対応できず、適切な大きさで表示されない場合があります。

高DPI環境をサポートする帳票ビューワ

ActiveReportsのWPF用レポートビューワは、特別な設定を行うことなく150%や200%のDPI環境でも自動的にスケールされるため、エンドユーザーのあらゆる環境に対応できます。

Windowsフォーム用レポートビューワは、125%以上のDPI環境には未対応のため、高精細のモニタでは想定通りのプレビューが表示できない場合があります。

柔軟なUIカスタマイズ

WPFは既定のテンプレートを編集したり独自のテンプレートを新たに定義したりすることで、コントロールの外観を自由に変えたり、複数のUI要素を統合したりと、Windowsフォームとは一線を画すUIカスタマイズの柔軟性を持ちます。

外観を定義するテンプレートやスタイルはXAMLにより定義し、複数のUI要素で共有できるほか、異なるアプリケーションでも流用できるため、開発工数の削減にも寄与します。

入力用途に応じてテンプレートを変更

InputManが提供するコンボコントロールは、テンプレートを使用してテキストエリアをカスタマイズできます。

InputManのテキストコントロールやマスクコントロールと組み合わせて、未入力時の透かし文字の表示や、入力可能な文字種の限定、定型書式などを設定できます。

カレンダーの祝日や曜日の外観もスタイルを使用して定義するため、異なるアプリケーションでの再利用が可能です。

再利用性に優れたMVVM設計

ソフトウェアアーキテクチャパターンであるMVVM(Model-View-ViewModel 、モデル・ビュー・ビューモデル)は、ビジネスロジックとUIを分離して開発できることから、開発生産性や再利用性の高さが評価され採用されています。

UWP(Universal Windows Platform:ユニバーサル ウィンドウズ プラットフォーム)やXamarinもMVVM設計が可能で、また開発にはXAMLを使用するため、WPFでの資産を再利用でき、アプリケーション開発における保守性・開発生産性に寄与します。

多種多様なUIを実現

ComponentOneは、業務アプリケーションに必要な機能を満たすコンポーネントのセットです。多種多様なUIコントロールは、Windowsフォームのほか、WPF、UWP、Xamarinなど .NET Frameworkの各種プラットフォームに対応しています。

WPF用にチャートやゲージといったデータ視覚化、PDFやMS Wordのファイル出力、コントロールの外観を簡単に設定するClearStyleなど、標準コントロールにない数々の機能を提供します。
MVVMパターンではView部分にUIコンポーネントを採用することで、統一したデザインで設計することができます。

関連技術情報

SPREAD for WPFでMVVMパターンのアプリケーションを作成する

CodeZineに掲載された記事です。
MVVMパターンを使用したアプリケーションを作成する方法を紹介しています。

詳しく見る
実践WPF業務アプリケーションのアーキテクチャ

CodeZineに掲載された記事です。
現役エンジニアがMVVMを採用した開発について解説しています。

詳しく見る
SPREAD for WPFの新機能

バージョン2.0Jで搭載された機能を紹介した6件の記事を公開しています。

詳しく見る
「GrapeCity ECHO 2017」レポート

XAMLをテーマに開催した技術カンファレンスの開催レポートです。
資料も公開しています。

詳しく見る
GrapeCity.devlog 記事

GrapeCity.devlogで公開している「WPF」カテゴリーの技術記事一覧です。

詳しく見る

導入事例・パートナー

ヤフー株式会社

200万行でも高速に表示
パフォーマンスにこだわり続けた広告入稿管理システム

導入事例を見る

株式会社マーベリック

XAML関連開発も経験豊富な
導入支援パートナー企業

詳しく見る

この記事で解説したWPF用コンポーネント

SPREAD

[スプレッド]
Excelのような見た目と操作性に加え
自由レイアウトにも対応したグリッドコンポーネント

デモアプリケーション
トライアル版
製品情報

ActiveReports

[アクティブレポート]
日本の帳票開発に必要なすべての機能を
搭載したコンポーネント

デモアプリケーション
トライアル版
製品情報

InputMan

[インプットマン]
入力操作を楽にする機能を多数搭載した
入力用コントロールセット

デモアプリケーション
トライアル版
製品情報

ComponentOne

[コンポーネントワン]
UIコントロールセット
多様な環境でアプリ開発を支援

デモアプリケーション
トライアル版
製品情報