【问题标题】:set a background of disabled button?设置禁用按钮的背景?
【发布时间】:2013-06-05 08:15:46
【问题描述】:

我需要设置禁用按钮的背景。

private void Button1_Click_1(object sender, RoutedEventArgs e)    
{
     Button1.IsEnabled = false;
     var brush = new ImageBrush();
     brush.ImageSource = new BitmapImage(new Uri("Images/AERO.png"));
     Button1.Background = brush;
}

如果我这样做,我将禁用没有任何背景的按钮。 我整个上午都在寻找答案,但没有得到我想要的。 我找到了如何在 XAML 中设置禁用按钮的背景,但在 C# 中没有。

【问题讨论】:

  • I found how to set background of disabled button in XAML but not in C# - 在 WPF 中的 XAML 中管理 UI 元素以及数据绑定。您不应该从程序代码中操作 UI 元素属性。
  • 那么当程序运行时如何更改按钮的背景?
  • @ŁukaszZimoń 在您的应用程序中为Button 定义一个自定义Style,如果您基于默认模板,请删除ControlTemplate TriggerProperty="IsEnabled" Value="False"
  • 但我有 windows Phone 7 应用程序。

标签: c# wpf button background


【解决方案1】:

只需颠倒你做事的顺序。将按钮的启用状态设置为您做的最后一件事:

private void Button1_Click_1(object sender, RoutedEventArgs e)    
{
     var brush = new ImageBrush();
     brush.ImageSource = new BitmapImage(new Uri("Images/AERO.png"));
     Button1.Background = brush;
     Button1.IsEnabled = false;
}

这将更新背景图像并然后禁用按钮。

【讨论】:

    【解决方案2】:

    你不能直接这样做,但你可以像我下面的代码那样做:

    XMAL 代码

    <Button Name="button1"  Click="button1_Click" >
        <Image Name="btndisbackground" Visibility="Hidden" VerticalAlignment="Stretch"
               HorizontalAlignment="Stretch" Source="D:\1.jpg" Stretch="Fill"/>
    </Button>
    

    按钮代码

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        button1.IsEnabled = flase;
        btndisbackground.Visibility = Visibility.Visible;
    }
    

    【讨论】:

    • 这个答案没有回答 OP 的问题“我需要设置禁用按钮的背景。”,而是显示如何以编程方式禁用按钮。我很好奇btndisbackground.Visibility = Visibility.Visisble 分支将如何执行(禁用的按钮不会引发click 事件!)
    • @STLDeveloper:I'm rather curious how the btndisbackground.Visibility = Visibility.Visisble branch will every get executed (a disabled button won't be raising click events!)这是一个有趣的错误:)),他想在禁用时更改按钮背景
    • 我的按钮很少,每个按钮都必须有随机图像。为此,我在按钮代码中设置了背景按钮。
    猜你喜欢
    • 1970-01-01
    • 2014-10-13
    • 2014-07-12
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多