WPF Windows 背景颜色

12

默认情况下,WPF窗口的背景颜色为白色。因此,我应该指定什么颜色作为背景,以使其看起来像普通窗口,就像.NET 2.0的Win应用程序窗口颜色一样。请帮忙。

2个回答

19

你需要使用系统颜色画刷来绘制背景。

SystemColors.ControlBrushKey 属性 将返回适当的 SolidColorBrushResourceKey

例如,要设置按钮的背景,您可以使用以下代码:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  WindowTitle="SystemColors Example" Background="White">  
  <StackPanel Margin="20">
    <Button 
      Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" 
      Content="Hello, World!" />
  </StackPanel>
</Page>

1
在这里为什么要使用DynamicResource而不是StaticResource?另外,为什么Visual Studio 2012的Intellisense无法识别“x:Static”? - BlueMonkMN
3
请参考 https://learn.microsoft.com/en-us/dotnet/framework/wpf/advanced/xaml-resources:然而,对于那些已知只存在于主题或系统资源中的键的静态资源引用不受推荐。原因是如果用户在实时更改了主题,则此类引用将不会重新评估。当您请求主题或系统资源时,动态资源引用更可靠。 - diverger

0

动态地将窗口的背景绑定到系统颜色板中的“控件”刷子。您可以在窗口类的构造函数中使用以下代码实现:

SetResourceReference(BackgroundProperty, SystemColors.ControlBrushKey);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接