0

Button在 WPF 中创建了一个对象,并MouseEnter为它挂钩了一个事件,例如 on MouseEnterevent for ButtonBackground更改:

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在事件中更改为默认的灰色MouseEnter

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

4

2 回答 2

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;
   }
于 2013-07-16T03:49:51.707 回答
0

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

于 2013-07-15T07:10:11.590 回答