我想使用XAML来设置WPFbutton的样式,使其看起来像这些Windows 7通知区域popup窗口的“混音器”和“更改date和时间设置…”文本。
SystemColors属性是否定义了该颜色? 哪一个?
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.????}}" />
我发现的最好的方法是实验和猜测。
我创建了一个小工具来可视化这些颜色。
<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>                   </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>
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主题的颜色 。
目前还不清楚文本使用哪种颜色名称,但试图将其用于眼球,它看起来像HighlightBrush
或MenuHighlightBrush
可能是候选人…
您可能需要阅读Aero主题美学指南 。
用眼睛来比较颜色是非常困难的!
如果你拍摄一个屏幕截图(键盘上的Prt Scr按钮),你可以将它粘贴到mspaint中,并使用滴管获取实际的颜色值。
诡异的文字,但我读了截图文本的颜色是R,G,B = 0,102,204和HotTrackColor是R,G,B = 0,102,203
正如我所说,差异可能是由于文本的别名。
注意:单击“滴管工具”后,可能需要勾选“编辑颜色”以查看实际颜色值。 无论如何,你在win7中都是这样。