WPF C#按钮背景不会在MouseEnter事件上更改

时间:2013-07-15 07:06:59

标签: c# wpf button background mouseevent

我在WPF中创建了一个Button对象并为其添加了MouseEnter个事件,例如MouseEnter的{​​{1}}事件,Button更改:

Background

我的活动是:

Button button = new Button();  
button.Background = Brushes.Red;  
button.BorderBrush=Brushes.Red;  
button.MouseEnter += new MouseEventHandler(button_MouseEnter);`

我在private void button_MouseEnter(object sender, MouseEventArgs e) { Button button = sender as Button; button.Background = Brushes.Yellow; button.BorderBrush = Brushes.Yellow; } 事件中更改了我的按钮BorderBrush,但MouseEnter背景无法正常工作,而Button正在Background更改为默认灰色事件。

所以我哪里出错了,有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

默认的wpf样式模板包含一个处理鼠标悬停效果的触发器,我猜这是与你的处理程序的干扰。尝试将没有触发器的样式设置为按钮(顺便说一句。这是您应该使用的wpf方式,使用模板设置控件样式而不是代码后面的样式)并查看代码是否正常工作。

答案 1 :(得分:0)

感谢您的回复,我已经按照您的步骤和资源,我的目标是必须在后面的代码中实现这一点,所以我已经改变了我的事件一点点,它工作但背景改变只是一小部分,这是正确的我做了什么?

 private void button_MouseEnter(object sender, MouseEventArgs e)
 {
       Button button = sender as Button;
       Style style = new System.Windows.Style(typeof(Button));
       style.Setters.Add(new Setter(Button.BackgroundProperty, Brushes.Yellow));
       button.Style = style;
       button.Background = Brushes.Yellow;
   }