gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 12:18:20 24 4
gpt4 key购买 nike

我想使用 XAML 设置 WPF 按钮的样式,使其看起来像这些 Windows 7 通知区域弹出窗口中的“混合器”和“更改日期和时间设置...”文本。

是否为 SystemColors 的属性定义那种颜色?哪个?

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

Windows 7 Notification area flyout

最佳答案

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

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

界面

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; }
}
}

关于wpf - 如何使用正确的 Windows 系统颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5094447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com