我如何使用正确的Windows系统颜色?

我想使用XAML来设置WPFbutton的样式,使其看起来像这些Windows 7通知区域popup窗口的“混音器”和“更改date和时间设置…”文本。

SystemColors属性是否定义了该颜色? 哪一个?

<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.????}}" /> 

Windows 7通知区域弹出窗口

我发现的最好的方法是实验和猜测。

我创建了一个小工具来可视化这些颜色。

接口

System.Windows.SystemColors

XAML

 <Window x:Class="SystemColors1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="System.Windows.SystemColors" Height="350" Width="525"> <Window.Resources> <DataTemplate x:Key="CellColor"> <DockPanel> <TextBlock> <TextBlock.Background> <SolidColorBrush Color="{Binding Path=Color}" /> </TextBlock.Background> <TextBlock.Text> &#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160; </TextBlock.Text> </TextBlock> </DockPanel> </DataTemplate> </Window.Resources> <Grid> <ListView Grid.Row="1" Name="SystemColorsList" ItemsSource="{Binding}"> <ListView.View> <GridView AllowsColumnReorder="True"> <GridViewColumn CellTemplate="{StaticResource CellColor}" Header="Color" Width="Auto"/> <GridViewColumn DisplayMemberBinding="{Binding Path=Name}" Header="Name" Width="Auto"/> </GridView> </ListView.View> </ListView> </Grid> </Window> 

C#

 using System.Collections.Generic; using System.Windows; using System.Windows.Media; using System.Reflection; namespace SystemColors1 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); List<ColorAndName> l = new List<ColorAndName>(); foreach (PropertyInfo i in typeof(System.Windows.SystemColors).GetProperties()) { if (i.PropertyType == typeof(Color)) { ColorAndName cn = new ColorAndName(); cn.Color = (Color)i.GetValue(new Color(), BindingFlags.GetProperty, null, null, null); cn.Name = i.Name; l.Add(cn); } } SystemColorsList.DataContext = l; } } class ColorAndName { public Color Color { get; set; } public string Name { get; set; } } } 

看看这个SystemColors参考 ,特别是Aero主题的颜色 。

目前还不清楚文本使用哪种颜色名称,但试图将其用于眼球,它看起来像HighlightBrushMenuHighlightBrush可能是候选人…

您可能需要阅读Aero主题美学指南 。

用眼睛来比较颜色是非常困难的!

如果你拍摄一个屏幕截图(键盘上的Prt Scr按钮),你可以将它粘贴到mspaint中,并使用滴管获取实际的颜色值。

诡异的文字,但我读了截图文本的颜色是R,G,B = 0,102,204和HotTrackColor是R,G,B = 0,102,203

正如我所说,差异可能是由于文本的别名。

注意:单击“滴管工具”后,可能需要勾选“编辑颜色”以查看实际颜色值。 无论如何,你在win7中都是这样。