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

时间:2015-10-19 11:18:08

标签: c# wpf xaml devexpress

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

它不能比

困难得多
<Button Margin="2" Background ="LightGreen" ....>

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

修改

我忘了提到我使用DevExpress的ThemeManager但是没想到会因为DevExpress会导致问题,他们没有标准的Windows按钮样式......显然他们这样做,但这基本上使得无法改变背景颜色没有一些主要工作的按钮...

3 个答案:

答案 0 :(得分:5)

根据documentation

  

DevExpress提供了可应用于所有人的多个主题   DevExpress控件用于WPF和一些标准控件(GroupBox,   ScrollViewer,Scroll,RadoiButton,Button,ListBox,Slider,   TabControl,Separator,ToggleButton,RepeatButton,Label,ListBoxItem,   TabItem,ToolTip等)。

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

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

答案 1 :(得分:2)

试试这个:

yourBtn.Background = new SolidColorBrush(Colors.Green);

或者在XAML中:

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

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

答案 2 :(得分:-1)

<Button Margin="2" Background="LightGreen"/>有效。如果它对您不起作用,也许您有另一个style或样式管理器在某处覆盖它。

其他信息 - 另一个答案显示了如何使用动态资源设置单个按钮的样式。要使用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>