Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何将窗口背景绑定到主题';什么是窗口背景色?_.net_Wpf_Data Binding_Xaml_Themes - Fatal编程技术网

.net 如何将窗口背景绑定到主题';什么是窗口背景色?

.net 如何将窗口背景绑定到主题';什么是窗口背景色?,.net,wpf,data-binding,xaml,themes,.net,Wpf,Data Binding,Xaml,Themes,如何将主题的默认窗口背景颜色绑定到窗口背景 我尝试了以下方法: <Window x:Class="Shell" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Shell" Height="300" Width="300" Back

如何将主题的默认窗口背景颜色绑定到窗口背景

我尝试了以下方法:

<Window x:Class="Shell"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Shell" 
    Height="300" 
    Width="300" 
    Background="{DynamicResource WindowBackgroundBrush}"
    >

但是背景色渲染为黑色,这在使用Luna主题时似乎不正确。使用Luna主题,我希望Windows XP中常见的米色/棕色

更新:在阅读了您的答案后,我对这个问题进行了思考,得出了以下结论:

默认情况下,窗口将使用SystemColor.WindowBrush作为背景色。这种颜色在我尝试过的大多数主题中都是白色的,这可能还可以。我相信白色也是WinForms中的窗口背景色。但是,WinForms中的默认窗体背景色不是窗口背景色,而是控件背景色。所以,如果我想要那种颜色,我就使用前面提到的
SystemColors.ControlBrush

有一次,我试图在WindowsXP上实现WinForms的棕色/米色控件颜色。这在Windows Vista上可能是不可能的,因为Vista上的控件颜色是灰色的。在Windows Vista上运行WinForms应用程序不会将其呈现为米色/棕色,而是灰色。在这种情况下,我想我们必须应用自己的自定义样式,才能在Vista上实现“原始”的Windows XP外观


谢谢大家帮我解决这个问题

我原以为只要在
窗口
元素上取消设置
背景
属性就可以实现这一点。主题的全部意义在于它影响视觉元素的默认外观,例如
窗口


编辑您可能会看到--它将允许您查看控件(如窗口)的默认模板。您应该能够确定它绑定到每个主题的哪个属性。

应用主题是否真的会像我预期的那样覆盖系统笔刷?如果是这样,您应该能够做到这一点:

<Window ...
    Background="{x:Static SystemColors.WindowBrush}
    ...>

应用Luna主题并将“我的窗口”的“背景”属性保持为未设置状态会给我一个白色背景。我希望在Windows XP的WinForms中使用米色/棕色背景,或者在Vista的WinForms中使用灰色背景。如果白色背景是正确的行为,也许我需要重新表述我的问题。+1让我以不同的方式思考这个问题,并将我指向StyleSnooper!我从中得到了白色的括号,但是根据这个建议,您可以尝试
SystemColors.ControlBrush
SystemColors.ControlDarkBrush
,等等+1,为我指明正确的方向。然而,我愿意接受一个答案,即SystemColor.ControlBrush应用于Lucas建议的背景。照你的意思…你解决了吗?我想更改触发器的背景。这是: