C# 如何在WPF中设置按钮的背景色?

C# 如何在WPF中设置按钮的背景色?,c#,wpf,xaml,devexpress,C#,Wpf,Xaml,Devexpress,如何在xaml中设置按钮的背景色 没有比这更难的了 <Button Margin="2" Background ="LightGreen" ....> 但这不起作用……为了避免混淆,这里的按钮是System.Windows.Controls.button 编辑 我忘了提到我使用了DevXPress的ThemeManager,但我不认为这会导致问题,因为DevXPress他们没有设置标准Windows按钮的样式…显然他们有,但是,这基本上不可能在没有一些主要工作的情况下更改按钮的

如何在xaml中设置按钮的背景色

没有比这更难的了

<Button Margin="2" Background ="LightGreen" ....>

但这不起作用……为了避免混淆,这里的按钮是
System.Windows.Controls.button

编辑

我忘了提到我使用了DevXPress的ThemeManager,但我不认为这会导致问题,因为DevXPress他们没有设置标准Windows按钮的样式…显然他们有,但是,这基本上不可能在没有一些主要工作的情况下更改按钮的背景色…

尝试以下方法:

yourBtn.Background = new SolidColorBrush(Colors.Green);
或在XAML中:

<Window.Resources>
   <SolidColorBrush x:Key="BG" Color="Green"/>
</Window.Resources>

<Button Background="{DynamicResource BG}"></Button>

有效。如果它不适合您,可能您有另一个
样式
或样式管理器在某处覆盖它

其他信息-另一个答案显示了如何使用动态资源设置单个按钮的样式。要使用resourcedictionary为样式中的所有按钮设置背景色,可以使用以下方法:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <!--background brush-->
    <LinearGradientBrush x:Key="backgroundBrush" StartPoint="0.5,0" EndPoint="0.5,1">
        <GradientStop Color="White" Offset="0.3"/>
        <GradientStop Color="#DDDDFF" Offset="1"/>
    </LinearGradientBrush>

        <!--The style for buttons-->
        <Style TargetType="Button">
            <Setter Property="Background" Value="{StaticResource backgroundBrush}"/>
        </Style>
    </ResourceDictionary>

根据:

DevExpress提供多个主题,可应用于所有 用于WPF和一些标准控件(GroupBox、, ScrollViewer、Scroll、RadoiButton、Button、ListBox、Slider、, 选项卡控件、分隔符、切换按钮、重复按钮、标签、ListBoxItem、, 选项卡项、工具提示等)

如您所见,此处列出了
按钮
控件。但在文档中,您可以通过将
ThemeName
属性设置为
None
来禁用单个控件的主题。因此,您可以禁用按钮或其某些父容器的主题,并使用您自己的样式。
下面是一个例子:

<Button Margin="2" Background="LightGreen" dx:ThemeManager.ThemeName="None" ...>


我特别要求提供xaml解决方案!也就是说,试着用这种方式设置背景,看看它是否有效。然后,您就会知道这是xaml的问题,而不是一些奇怪的配置问题,这些配置会阻止按钮正确着色。为什么
网格。参考资料
?也不起作用。我认为使用DevExpress管理器时存在问题。它似乎覆盖了某些东西……尽管他们强调
Windows按钮
不是他们样式库的一部分。你的按钮是否存在于网格中?要调用Grid.resources??我建议将
替换为
您的代码
,或者干脆将
替换为它
,使其尽可能简短。@KingKing我不太清楚您的意思是什么?当然,一个带有完整代码的答案对以后看这个问题的人来说更好(特别是如果原始问题在某个时候被编辑),你就是那个不理解我意思(或者可能是暗示)的人。这甚至不是一个答案,要小心避免在这个问题上投反对票。我的一些评论甚至比这个长3-4倍。啊哈,讽刺,很公平。我正计划更新它,因为OP提供了更多的细节——但在我看来,“如何在xaml中设置按钮的背景色?”的一个有效答案是,
@simonalexander2005,我发现它与DevExpress的ThemeManager有关。虽然他们强调Windows.Controls的按钮不是由他们设计的…但在您的项目中有任何主题化方法吗?是的,DevExpress ThemeManager…@Downvoter,要不要评论一下?您能解释一下如何使用ThemeManager吗?您确定没有更改按钮的样式或模板吗?您已经尝试过的方法是正常的方法,除非您不在其他地方更改背景。@MattWolf这可能会对您有所帮助:快速浏览实际文档会产生多么惊人的效果,您刚刚解决了我的问题。我甚至从未检查过,因为DevExpress自己在支持论坛上的工作人员坚持这是不可能的。非常感谢。快速清洁的解决方案。