locked
按钮事件中,如何改变按钮背景色? RRS feed

  • 问题

  • 如题,把行为附加到button上,Background 一直也不等于 sb1  ,每次好像都被重置了。为什么呢?

        public class ToggleDropShadowAction :TriggerAction<Button>
        {
            protected override void Invoke(object parameter)
            {
                Brush sb1 =(Brush) new SolidColorBrush(Color.FromArgb(100, 0, 0, 255));
                Brush sb2 =(Brush) new SolidColorBrush(Color.FromArgb(100, 255, 0,0));
    
    
                if (this.AssociatedObject.Background == sb1)
                    this.AssociatedObject.Background = sb2;
                else
                    this.AssociatedObject.Background = sb1;
            }
        }


    • 已编辑 skylen 2012年5月7日 8:50
    2012年5月7日 8:50

答案

全部回复

  • 难道是因为这个?

    备注

    Background 属性仅适用于控件的休眠状态。控件的默认样式指定当控件的状态发生更改时的外观。Button 上设置 Background 属性,则此按钮仅在未被按下或禁用时具有该值。如果要创建具有更高级的背景自定义项的控件,必须定义控件的样式。

    Background 属性作为参数的控件。对于其他控件,此属性不会产生任何影响。

    2012年5月7日 11:30
  • 你好,

    关于这个问题,我们可以通过改变Button的模板来处理,具体可以参考这篇文章,里面讲的比较清楚。

    Why can't I change the Background of my Button on a Click event?


    Keep Fighting

    • 已标记为答案 Shi Ding 2012年5月9日 2:13
    • 取消答案标记 Shi Ding 2012年5月9日 2:13
    • 已建议为答案 Shi Ding 2012年5月9日 2:13
    • 已标记为答案 Shi Ding 2012年5月14日 9:34
    2012年5月8日 4:21