25

ユーザーが Windows で選択したアクセント カラーをアプリで使用したくありません。代わりに、独自のカラー ショーを表示したいと考えています。新しいスタイルを作成することで、すべてのアイテムで手動で変更できますが、通常のコントロールの非常に多くの場所にあるため、アプリ レベルで行うとよいでしょう。

設定してみ<SolidColorBrush x:Key="SystemAccentColor" Color="#FFCB2128" />ましたが、なぜか一部の項目に注目せず、ビデオコントロールのように他の項目が灰色になります。

4

4 に答える 4

25

Win10 UWP では、システム アクセント カラーは ThemeResource として定義されますSystemControlHighlightAccentBrush。次のようにオーバーライドできます。

<ResourceDictionary.ThemeDictionaries>
    <ResourceDictionary x:Key="Default">
        <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Orange" />
    </ResourceDictionary>
    <ResourceDictionary x:Key="Dark">
        <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Green" />
    </ResourceDictionary>
    <ResourceDictionary x:Key="Light">
        <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Blue" />
    </ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
于 2015-08-06T00:06:39.957 に答える
25

すべてのシステム コントロールのアクセント カラーを変更するには、次のようにシステム リソースを再定義する必要があります。

SystemAccentColor はブラシではなく色であることに注意してください。他のすべてのブラシを再定義しないと、すべてに色が適用されません。

<ResourceDictionary.ThemeDictionaries>
  <ResourceDictionary x:Key="Default">     
    <Color x:Key="SystemAccentColor">#FF20A060</Color>  <!--Your accent color-->

    <SolidColorBrush x:Key="SystemControlBackgroundAccentBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="SystemControlDisabledAccentBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="SystemControlForegroundAccentBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="SystemControlHighlightAltAccentBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="SystemControlHighlightAltListAccentHighBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.9" />
    <SolidColorBrush x:Key="SystemControlHighlightAltListAccentLowBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.6" />
    <SolidColorBrush x:Key="SystemControlHighlightAltListAccentMediumBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.8" />
    <SolidColorBrush x:Key="SystemControlHighlightListAccentHighBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.9" />
    <SolidColorBrush x:Key="SystemControlHighlightListAccentLowBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.6" />
    <SolidColorBrush x:Key="SystemControlHighlightListAccentMediumBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.8" />
    <SolidColorBrush x:Key="SystemControlHyperlinkTextBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="ContentDialogBorderThemeBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="JumpListDefaultEnabledBackground" Color="{ThemeResource SystemAccentColor}" />
  </ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
于 2015-11-22T12:17:48.023 に答える
5

テンプレートまたは ResourceDictionaries を使用していない場合は、App.xaml に次を追加します。

<ResourceDictionary>
    <Color x:Key="SystemAccentColor">#FFCB2128</Color>
</ResourceDictionary>

Minimal Template10 テンプレートを使用している場合は、次の行を Styles/Custom.xaml の CustomColor および ContrastColor 値の後に追加します。

<Color x:Key="SystemAccentColor">#FFCB2128</Color>

App.xaml からリンクされた独自の ResourceDictionary が別の場所にある場合は、同様に「Color」行をそこに追加します。

于 2015-12-28T21:37:10.433 に答える