WPF入門者にまず知ってほしいこと

C#

WPFに入門するにあたって、知ってほしいことを一通りまとめましたのでご紹介します。

WPFとは

WPFはWindows Presentation Foundation の略で、デスクトップアプリの UI フレームワークです。UIデザイナーとプログラマーが共同でアプリケーションを開発できるように開発することを目的として作られました。

 特徴

  • インターフェースとロジックを分離できる
  • GPUによるレンダリングが可能なため高速化できる
  • 3Dモデルの表示などのリッチな描画ができる

何を学ばなくてはならないか?

C#の基礎が習得できていることを前提として、大体下記の3つになると思います。

  • MVVM・・・実装パターンの1つで、実装をModel ・View・ViewModelに分ける方法
  • XAML・・・XMLを拡張した、UI構築用のマークアップ言語 
  • ReactiveProperty・・・MVVM実装用のライブラリ

中でもMVVMは慣れないうちは実践するのが難しいため、若干敷居が高いかもしれません。 しかし、そこを楽にしてくれるのがReactive Propertyです。ViewとViewModelの実装が非常に楽になるので是非導入することをお勧めします。

WindowsFormではない理由

WPFの場合、UIをXAMLで書く必要がある分Windows Formsに比べると開発速度は遅れるかもしれません。しかし、保守性やデザインの幅広さ、さらにはGPUによる高速化が可能という大きな利点があります。 ボタンに影をつけてみたり、テキストをアニメ表示するなどのWindows Formでは不可能だった表現ができるので、 UIの重要性が高まっている昨今ではWPFを選ぶべきことが賢明だと考えられます。

お勧め書籍・サイト

書籍

日本語のWPFの書籍は少ないのですが、オススメできる本としては下記のWPFの開発者の著作がオススメです。XAMLは勿論、Gridや2D,3DアニメーションなどのWPF開発に必要なことは大体載ってます。

https://www.amazon.co.jp/エッセンシャルWPF-Presentation-Foundation-Programmers-SELECTION/dp/4798114200/ref=cm_cr_arp_d_product_top?ie=UTF8

ちなみにAmazon.comでWPFを検索すると多数ヒットするので、英語でもいいという方はそちらも見てみることをお勧めします。

サイト

ネットでWPFのサンプルコードを調べてみると、ReactivePropertyを使わずPrismを使っていたり、はたまたそのどちらも使っていなかったりするので混乱しましたが、そのなかでも個人的に役立ったサイトをご紹介します。

https://blog.okazuki.jp
マイクロソフトで働いている方のブログで、C#やXAMLを中心に書かれており、WPF開発する上では必見のブログです。

https://qiita.com/YSRKEN/items/5a36fb8071104a989fb8
Qiitaの記事で、ReactivePropertyの実用的なサンプルコードがあるのでおすすめです。

タイトルとURLをコピーしました