我如何在WPF的代码后台中实现这个?
<Grid Background="{DynamicResource {x:Static SystemColors.DesktopBrushKey}}"/>
我如何在WPF的代码后台中实现这个?
<Grid Background="{DynamicResource {x:Static SystemColors.DesktopBrushKey}}"/>
我刚刚找到了一个丑陋的解决方法:
grid1.SetResourceReference(
Control.BackgroundProperty,
SystemColors.DesktopBrushKey);
我希望有人能够发布更好的代码(我想看到类似于grid1.Background = BackgroundBrush这样的语法,因为SetResourceReference的语法比Windows Forms退步了一步)。
<Grid Background="{DynamicResource {x:Static SystemColors.DesktopBrushKey}}"/>
的意思是将Grid控件的背景设置为系统桌面颜色。扩展方法可能会有所帮助:
public static class FrameworkElementExtensions
{
// usage xPanel.SetBackground(SystemColors.DesktopBrushKey);
public static void SetBackground(this Panel panel, ResourceKey key)
{
panel.SetResourceReference(Panel.BackgroundProperty, key);
}
// usage xControl.SetBackground(SystemColors.DesktopBrushKey);
public static void SetBackground(this Control control, ResourceKey key)
{
control.SetResourceReference(Control.BackgroundProperty, key);
}
}
public static class FrameworkElementExtensions { // 用法 xControl.SetBackground(SystemColors.DesktopBrushKey); public static void SetBackground(this FrameworkElement control, ResourceKey key) { control.SetResourceReference(Control.BackgroundProperty, key); } }
- Meister Schnitzel.NET Framework 3.0 及以上版本支持
https://msdn.microsoft.com/zh-cn/library/system.windows.systemcolors.highlightbrush(v=vs.85).aspx https://msdn.microsoft.com/zh-cn/library/system.windows.systemcolors.highlightbrushkey(v=vs.85).aspx
this.background=SystemColors.HighlightBrush;
SystemColors.GrayTextBrush
是我正在寻找的。 - Flou