WPF-更改多个按钮的前景和背景的触发器';s对象
我正在尝试通过WPF-更改多个按钮的前景和背景的触发器';s对象,wpf,xaml,button,storyboard,eventtrigger,Wpf,Xaml,Button,Storyboard,Eventtrigger,我正在尝试通过TextBlock和面板内部按钮来激活彩色动画。我的目标是在使用MouseEnter和MouseLeave路由事件时更改文本块的前景和面板的背景 下面的代码实际上正在工作。但它只在鼠标光标位于这两个对象中的一个对象上时才起作用(这是有意义的) 当鼠标位于按钮上方时(特别是当鼠标不在面板或文本块上方时),我不知道如何激活彩色动画) 下面是一个按钮看起来正常的示例: 这是我聚焦面板时按钮的外观: 这就是我对焦时按钮的样子(按钮背景与面板背景和文本块前景的颜色相同) 这就是鼠标放在
TextBlock
和面板内部按钮来激活彩色动画。我的目标是在使用MouseEnter和MouseLeave路由事件时更改文本块的前景和面板的背景
下面的代码实际上正在工作。但它只在鼠标光标位于这两个对象中的一个对象上时才起作用(这是有意义的)
当鼠标位于按钮上方时(特别是当鼠标不在面板
或文本块
上方时),我不知道如何激活彩色动画)
下面是一个按钮看起来正常的示例:
这是我聚焦面板时按钮的外观:
这就是我对焦时按钮的样子(按钮背景与面板背景和文本块前景的颜色相同)
这就是鼠标放在按钮上时按钮的外观
试验
编辑1
我测试了艾哈迈德的代码,部分有效。当我的光标位于按钮上时,数据触发器工作。但是当我离开它(IsMouseOver=false)时,路径
填充和文本块
前景不会变回:
OBS:我必须添加DataTrigger.entreactions以避免出现以下错误消息:
无法将“BeginStoryBoard”类型的值添加到集合或
类型为“SetterBaseCollection”的字典
添加绑定到文本/面板UI元素的DataTrigger,而不是EventTrigger
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=Button},Path=IsMouseOver}" Value="True">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Path.Fill).(SolidColorBrush.Color)" To="Gray" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger>
other triggers for IsMouseOver being false ...
IsMouseOver为false的其他触发器。。。
您可以对面板或文本块执行此操作,只需从按钮上移除触发器,当鼠标位于按钮上方时,它将触发文本/面板故事板。对于Ahmad初始代码,我做了一些研究,发现了entreactions和ExitActions属性。使用一个数据触发器,我可以在IsMouseOver
为True时定义我的动画
你好,艾哈迈德!谢谢你的回答我编辑了我的帖子,与艾哈迈德的建议分享代码结果,但它并没有像我预期的那样起作用。