我在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
更改为默认灰色事件。
所以我哪里出错了,有人可以帮助我。
答案 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;
}