読者です 読者をやめる 読者になる 読者になる

古事連記帖

趣味のこと、技術的なこと、適当につらつら書きます。

色リソース

基本的にデザインまわりはバインディングしまくる方がいいのでしょうが、僕のようなMVVMにまだ慣れてない人にとっては、WinFormsのようなコードでデザインいじれた方が都合のいい人もまだ多いと思います。
そこで重要になるのが色のリソース。ユーザーがシステムで選んでいる色に合わせた方が統一感があります。独自に色を決めるのもアリですが、色って結構めんどくさいのでユーザーに任せたいところ。

しかし、SystemColors構造体に入っているシステム色はなんか名前も違うし、見てみるとわかりますが、どの色もすべて #FF000000 つまり黒で埋まっています。
なんならこの構造体最初から入れておくなよって思いますが、Windows Phoneでシステム色の管理をしているのはリソースディクショナリだったりします。

例えばテーマ色の取り出し方はこんな感じ。

Color accentColor = (Color)Application.Current.Resources["PhoneAccentColor"];

これでユーザーが指定したテーマ色が取り出せます。


システムが管理しているリソースディクショナリの一覧は以下のMSDNの記事に載っています。Color以外にもいろいろあります。使い方は先ほどのコードのように、「Name」にあるリソース名を使うだけ。ちゃんと「Type」でキャストするのを忘れずに。
Theme Resources for Windows Phone