4

MSDN によると、アプリのテーマを設定する標準的な方法はRequestedTheme="Dark"RequestedTheme="Light"トップレベルApplicationインスタンスを設定することです。

これは単純なアプリではうまく機能しますが、個々のページや個々のコントロールのテーマを変更したいと思うことがよくあります (たとえば、同じアプリ内の明るいテーマのテキスト編集ページと暗いテーマの画像ビューアー)。

XAML コントロールには数十または数百の視覚状態と色の定義があり、それらをそれぞれ手動で設定するのは面倒で、100% 正しく行うことは困難です。

個々のコントロールに暗いテーマまたは明るいテーマを設定する簡単な方法はありますか?

4

4 に答える 4

5

驚くべきことに言及されていないように見える解決策は、個々のコントロール要素でRequestedTheme="Dark"またはRequestedTheme="Light"を使用することです。

いくつかの appbarbuttons を暗い設定 (前景が白) に設定する必要があるアプリでこれを行います。これは、Foreground プロパティが円とグリフ自体の両方を白に設定していないためです。

<AppBarButton Label="Reload all articles" RequestedTheme="Dark" >

このようにして、私が決定したテーマを使用するようにコントロールを強制するだけです。

于 2013-12-19T21:45:32.363 に答える
1

Common フォルダーには、StandardStyles.xaml ファイルがあります。

ここでは、Metro アプリケーションのデフォルトのすべての標準スタイルを見つけることができます。使用するスタイルのコメントを解除し、StaticResource としてコントロールに追加する必要があります。

于 2013-02-22T20:08:20.730 に答える
0

ダークテーマとライトテーマの変更も望んでいたため、アプリ「コンタクトブック」の設計中に同じ問題に直面しました。「C#/XAML Windows ストア (Metro UI) アプリでライト テーマとダーク テーマを混在させるにはどうすればよいですか?」という質問に対しては、優れたソリューションがあります。

  • 同じコードと同じコンテンツで 2 つのページを作成しました。両方のページを上下に追加してから、ライトとダークの 2 種類のテーマの間で動的な変更を行いました。ダーク レイアウトとライト レイアウトのどちらを希望するかをユーザーに選択してもらい、ユーザーの選択に応じてテーマを適用しました。この場合は成功しました。

2番目の解決策:

  • アプリケーションに動的なルック アンド フィールが必要な場合は、独自の静的レイアウト タイプを作成する必要があります。その後、その種類のスタイルを適用するページにその静的リソースをバインドできます。

ここで答えが見つからない場合はご容赦ください。ただし、win 8 メトロ アプリで「ダーク」テーマと「ライト」テーマの設定を動的に変更すると役立つと思います。

于 2013-02-23T10:38:14.267 に答える