たとえば、ライトテーマを使用すると、戻るボタンとappbarボタンが黒になります。ただし、暗いアプリバーの色を使用すると、ボタンのコントラストがはっきりします。これがスクリーングラブです。白いものの品質は無視してください。http://i.imgur.com/2EzSd.png
あるテーマのアイコンと別のテーマのアイコンを作成するスタイルに直接アクセスする方法はありますか?
注:C#+XAMLアプリを作成しています。
たとえば、ライトテーマを使用すると、戻るボタンとappbarボタンが黒になります。ただし、暗いアプリバーの色を使用すると、ボタンのコントラストがはっきりします。これがスクリーングラブです。白いものの品質は無視してください。http://i.imgur.com/2EzSd.png
あるテーマのアイコンと別のテーマのアイコンを作成するスタイルに直接アクセスする方法はありますか?
注:C#+XAMLアプリを作成しています。
開始すると、ボタンは次のようになります。
StandartStyles.xmlの下で、AppBarButtonStyle
最初にスタイルを探してアイコンの色を変更する必要があります。<Setter Property="Foreground" Value="{StaticResource AppBarItemForegroundThemeBrush}"/>
これで、との両方を{StaticResource AppBarItemForegroundThemeBrush}
使用できる必要な色に置き換えます。これで、アイコンのビジュアルが変更され、次のようなものになるはずです。white
#FFFFFFFF
次に、下のテキストのスタイルを設定する必要があります。これは</TextBlock
、数行下のタグを見つけて、そこでforgroundプロパティを変更することによって行われます。
これで見栄えの良いアイコンができましたが、マウスを合わせるとすぐにすべてが静かな醜いアギエンに変わります。異なる状態を変更するには、<VisualStateGroup x:Name="CommonStates">
ここのタグに移動し<VisualState x:Name="PointerOver">
ます。これにより、ボタンの上にマウスを置いたときにボタンのプロパティが変更されると思われる場合があるため、タグが表示されます。
<VisualState x:Name="PointerOver">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground">
<!-- the background of the actionbar-> !--><DiscreteObjectKeyFrame KeyTime="0" Value="yourBackgroundColor"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Content" Storyboard.TargetProperty="Foreground">
<!-- the icon of the actionbar-> --><DiscreteObjectKeyFrame KeyTime="0" Value="yourActionBarIconColor"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
下にスクロールし続けると、次<VisualState x:Name="Pressed">
のように表示されます。
Visual Studioのプロジェクトの下にある[参照]ノードを展開し、Windows Library for JavasScript 1.0
ノードを展開してからcss
フォルダーを展開すると、各テーマが使用するCSSを確認できます。
AppBarの色に関連する行は、私のui-dark.css
ファイルの2621行目から始まっているようです。.win-commandimage
また、2448行目は、ほとんどのappbarコマンドのアイコンであるアイテムの色を指定しています。プロジェクトのスタイルシートでこれらの設定を上書きできるはずです。
Windows 8は前景色(選択したテーマスタイルから継承)を使用していることがわかります。
つまり、必要なのは、アイコンの色を変更するための前景を設定することだけです。
各テーマのアプリバーボタンの色は、オーバーライドできるリソースとして定義されています。Windows 8 –Metroアプリリソースのオーバーライドでのプロセスについて説明しました。
あなたのアプローチは、ライトアプリバーボタンのリソースを取得し、それらを使用してダークリソースをオーバーライドするのに十分シンプルである必要があります。