私は警察の車に搭載されたラップトップコンピュータで実行されるWPFアプリケーションを構築しています。アプリは夜間の目に負担を軽減するために、より暗い色を使用する「ナイトモード」を持たなければなりません。色を変更する方法のアドバイスが必要
役員が運転している間にアプリケーションが使用されるため、すべてのコントロールのサイズを増やしました。コンボボックスのような新しいデフォルトテンプレートを定義しました。これは、画面を一目でわかりやすくし、ソーセージの指を持っているときにタッチスクリーン上のコントロールを簡単に叩くようにするためです。
TimesOfDay
という列挙を作成しました。列挙には、DayTime
とNightTime
の2つの値があります。各コントロールにはTimesOfDay
列挙型のTimeOfDay
というDepenencyPropertyがあります。メイン画面にはTimeOfDay
プロパティの値を変更するためのボタンがあります。ボタンをクリックすると、TimeOfDay
プロパティの値が2つの値の間で循環します。
私はまだWPFの新機能ですから、Xaml側でこれについてどうやって行くのかは分かりません。私がする必要があるのは、たとえばDayStyleという名前のスタイルとNightStyleという名前の2つのスタイルを作成することだと思います。次に、TimeOfDay
プロパティが変更されたときに、コントロールに適用されるスタイルを変更するためにトリガーを追加する必要があります。そうですか?
コントロールの背景色と前景色を種類ごとに変更するだけですか?要素名でもできますか?
私はこのすべてを非常にあいまいにしています。どんな助けもありがとう。
トニー
これは面白そうだし、やりやすいはずです。私は現在、色を設定しています(この例では、 'DynamicResource'節を使って参照しているapp.xamlファイルにいくつかの' Brushes'を定義しています)。私の問題は、 'ResourceDictionaries'がディスク上のファイルに存在しないようにすることです。実行可能ファイルにリソースとして埋め込み、そこから取得することはできますか? –
@ TonyVitabile:恐らくまだ自分自身で試したことはありませんが、[この質問](http://stackoverflow.com/questions/709087/load-a-resourceced-from-an-assembly)参考になるかもしれません。他の人も同様です。 –
私はいくつかの色を変更しましたが、私はメカニズムを働かせています。また、ResourceDictionariesはリソースとして実行可能ファイルに埋め込まれています。今では、夜間にすべての色を設定し、ブラシリソースを使用するのを忘れたプロパティを調整する必要があります。ありがとう! –