我想使用XAML设置WPF按钮的样式,使其看起来像这些Windows 7通知区域弹出窗口的“混音器”和“更改日期和时间设置...”文本。
SystemColors的属性是否定义了这种颜色?哪个?
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.????}}" />
答案 0 :(得分:29)
我发现的最佳方法是实验和猜测。
我创建了一个小实用程序来显示这些颜色。
<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; }
}
}
答案 1 :(得分:6)
查看此SystemColors reference,特别是Aero Theme colors。
文本会使用哪种颜色名称并不明显,但试图注视它,看起来HighlightBrush
或MenuHighlightBrush
可能是候选人......
答案 2 :(得分:2)
您可能需要阅读Aero Theme aesthetics guidelines。
答案 3 :(得分:2)
用眼睛比较颜色很难!
如果您拍摄屏幕截图(键盘上的Prt Scr按钮),则可以将其粘贴到mspaint中并使用滴管获取实际颜色值。
在别名文本上诡异,但我读到屏幕截图中文字的颜色为R,G,B = 0,102,204,HotTrackColor为R,G,B = 0,102,203
正如我所说,差异可能是由于文本上的别名造成的。
注意: 使用滴管工具单击后,您可能需要cilck“编辑颜色”以查看实际颜色值。无论如何你都是在win7中做的。