繁体   English   中英

使用 WPF 单击按钮时如何更改按钮背景

[英]How to change button background when button is clicked using WPF

当我单击按钮时,这与我在 WPF 中更改按钮背景最接近。

<Trigger Property="IsPressed" Value="true">
    <Setter TargetName="_Border" Property="Background" Value="#313131" />
</Trigger>

但是只要按下,使用 Property="IsPressed" 就会改变背景颜色。 我希望它在按下后保持颜色。

这是我的造型


<Style x:Key="Button_No_Light_Gray" TargetType="Button">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Border x:Name="_Border" Background="Red" Margin="1" BorderBrush="#202020">
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter TargetName="_Border" Property="Background" Value="#313131" />
                        </Trigger>
                        <Trigger Property="IsPressed" Value="true">
                            <Setter TargetName="_Border" Property="Background" Value="#313131" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

我在 Stack overflow 上查看了与此类似的其他问题,但他们的解决方案对我没有用。 必须更改_Border的背景颜色。

我通过Click事件以不同的方式找到了解决方案。

首先,您需要将此添加到您的 XAML 代码中,如下所示

<Button Content="Content"  Width="70" Height="50" Name="BtnColor" Click="BtnColor_Click"/>

然后,在你身后的代码中:

private void BtnColor_Click(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;
            btn.Background = btn.Background == Brushes.Red ? (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFDDDDDD") : Brushes.Red;
        }

注意:这将通过每次点击来回改变按钮的颜色。 希望这不是问题。

如果您不想这样,只需将 BrushConverter 的值设置为您需要的值即可。 例如,如果您希望它保持红色,只需 go

ConvertFrom("#FFFF0000") 而不是原来的样子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM