シルバーライト 4:ツールキットを使用せずにアプリ全体のテーマ/スタイルを変更する
-
25-09-2019 - |
質問
私たちは、WPF からの最初の Silverlight プロジェクトに着手しています。これは比較的単純な Web ポータルであり、WPF ツールキットの経験を考慮して、Silverlight ツールキットへの参照は避けたいと考えています。
私はあまりプログラマーではないので、テーマに関連していくつか質問があります。
暗黙的なスタイルを使用すると、これが簡単になります。リソース ディクショナリを切り替えるだけでテーマを変更できることは明らかです。ツールキットに依存せずにこれを行うにはどうすればよいですか?
WPF のように、テーマ コンテナーで何かをラップするのではなく、アプリケーション全体にスタイルを適用するにはどうすればよいですか?使用できる ApplicationThemeURI があるようですが、それにはツールキットが必要です。
ありがとう。
解決
Siverlightツールキットにだけ注意してください。 (しばらく前にあった)、私はWPF Toolkitを使用した最後の時間は、私はそれが多かれ少なかれ、オプションだったという印象を受けました。私は同じシルバーツールキットの真実であるとは言えないでしょう。それはあなた自身で実装するのは困難であろう重要な機能の多くを追加し、それはバグのないではないのですが、それはかなり信頼性の高いです。私はそれのあらゆる側面を保証することはできませんが、我々は大規模なSilverlightのプロジェクト(コードの〜30Kライン)で広範囲にそれを使用している、と我々はそれが不可欠見つけます。あなたのプロジェクトが遭遇するであろうと、特定の問題のあなたしている認識していない限り、私はあなたがそれを使用しないようにあなたの決定を再考することをお勧めします。
他のヒント
全アプリにスタイルを適用するのSilverlight 4に簡単な作業ですApp.xamlやテーマにこのコードを配置/ generic.xamlます:
<!-- Sample style for each button in the application -->
<Style TargetType="Button">
</Style>
この記事はあなたを助けることができます: http://www.silverlightshow.net/items/Implicit-Styles -in-シルバー-4.aspxする
あなたがこの方法でリソースディクショナリを変更することができます:
var dict = Application.Current.Resources.MergedDictionaries.FirstOrDefault(rd => rd.Source == new Uri("Dictionary1.xaml", UriKind.Relative));
if (dict != null)
dict.Source = new Uri("Dictionary2.xaml", UriKind.Relative);