我不想在我的应用程序中使用用户在Windows中选择的强调色,而是想有自己的颜色显示。我可以通过制作新的样式在所有项目上手动更改它,但它只是在正常控件中的很多地方,在应用程序级别上这样做会很好。我试着设置<SolidColorBrush x:Key="SystemAccentColor" Color="#FFCB2128" />,但由于某种原因,它在一些项目上做了注解,并将其他项目(如视频控制)变成灰色。
<SolidColorBrush x:Key="SystemAccentColor" Color="#FFCB2128" />
3zwtqj6y1#
在Win10 UWP上,系统特色颜色定义为ThemeResource SystemControlHighlightAccentBrush。您可以按以下方式覆盖它。
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>
ttisahbt2#
要更改每个系统控件的强调颜色,必须按如下所示重新定义系统资源。注意SystemAccentColor是一种颜色,而不是画笔。如果不重新定义所有其他画笔,颜色将不会应用于所有对象。
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>
mlnl4t2r3#
如果不使用任何模板或ResourceDictionaries,请将以下内容添加到App.xaml:
<ResourceDictionary> <Color x:Key="SystemAccentColor">#FFCB2128</Color> </ResourceDictionary>
如果您使用的是Minimal Template 10模板,则将以下行添加到Styles/Custom.xaml中的CustomColor和ContrastColor值之后:
<Color x:Key="SystemAccentColor">#FFCB2128</Color>
如果您在其他地方有自己的ResourceDictionary,从App.xaml链接,那么类似地在那里添加“Color”行。
kyxcudwk4#
对我有用的是
<SolidColorBrush x:Key="SystemAccentColor" Color="#FFCB2128" /> <Color x:Key="SystemAltHighColor">#FFCB2128</Color> <Color x:Key="SystemAltLowColor">#FFCB2128</Color> <Color x:Key="SystemAltMediumColor">#FFCB2128</Color> <Color x:Key="SystemAltMediumHighColor">#FFCB2128</Color> <Color x:Key="SystemAltMediumLowColor">#FFCB2128</Color> <Color x:Key="SystemBaseHighColor">#FFCB2128</Color> <Color x:Key="SystemBaseLowColor">#FFCB2128</Color> <Color x:Key="SystemBaseMediumColor">#FFCB2128</Color> <Color x:Key="SystemBaseMediumHighColor">#FFCB2128</Color> <Color x:Key="SystemBaseMediumLowColor">#FFCB2128</Color>
在app.xaml文件中,以覆盖windows设置的one。
6jjcrrmo5#
对于那些想用C#来做的人来说,下面是如何做的:在App.cs中的OnLaunched方法中,写入以下内容:
protected override void OnLaunched(LaunchActivatedEventArgs args) { //Use Argb values Application.Current.Resources["SystemAccentColor"] = Color.FromArgb(100, 100, 100, 100); //Use predefined colors Application.Current.Resources["SystemAccentColor"] = Colors.Black; //Rest of the code ... }
5条答案
按热度按时间3zwtqj6y1#
在Win10 UWP上,系统特色颜色定义为ThemeResource
SystemControlHighlightAccentBrush
。您可以按以下方式覆盖它。ttisahbt2#
要更改每个系统控件的强调颜色,必须按如下所示重新定义系统资源。
注意
SystemAccentColor
是一种颜色,而不是画笔。如果不重新定义所有其他画笔,颜色将不会应用于所有对象。mlnl4t2r3#
如果不使用任何模板或ResourceDictionaries,请将以下内容添加到App.xaml:
如果您使用的是Minimal Template 10模板,则将以下行添加到Styles/Custom.xaml中的CustomColor和ContrastColor值之后:
如果您在其他地方有自己的ResourceDictionary,从App.xaml链接,那么类似地在那里添加“Color”行。
kyxcudwk4#
对我有用的是
在app.xaml文件中,以覆盖windows设置的one。
6jjcrrmo5#
对于那些想用C#来做的人来说,下面是如何做的:
在App.cs中的OnLaunched方法中,写入以下内容: