WPF,请问事件触发器
EventTrigger类的RoutedEvent属性值是路由事件标识符,但是:
<EventTrigger RoutedEvent="Button.Click">
应该是ClickEvent的啊,为什么不是写的ClickEvent呢?
------解决方案--------------------能把问题再说明白一点吗?不是很懂你想问什么
------解决方案--------------------
嗯,你说的对。
但就像依赖属性一样,实质上它本身是一个静态字段,但我们可以像使用普通属性一样使用它,是因为添加一个CLR属性又包装了一下。
路由事件类似,button有一个click事件对ClickEvent事件进行包装,所以我们直接用Click就可以了,实际上用的还是ClickEvent,只不过这样更符合我们一往的编程习惯。
------解决方案--------------------
能把问题再说明白一点吗?不是很懂你想问什么
RoutedEvent属性值的数据类型是RoutedEvent,应该是ButtonBase.ClickEvent啊,
为什么写的是RoutedEvent="Button.Click"
嗯,你说的对。
但就像依赖属性一样,实质上它本身是一个静态字段,但我们可以像使用普通属性一样使用它,是因为添加一个CLR属性又包装了一下。
路由事件类似,button有一个click事件对ClickEvent事件进行包装,所以我们直接用Click就可以了,实际上用的还是ClickEvent,只不过这样更符合我们一往的编程习惯。
还是不明白,那至少写ButtonBase.ClickEvent不应该错吧,但还是报错
好吧,我们把这个事情简单点说。
你看你在xaml指定值的时候,其实是一个字符串,那其实是有内在的转换机制负责把这个字符串映射成具体的RoutedEvent的,那么你就可以理解成这个内在的转换器不识别Button.ClickEvent,而只识别Button.Click字符串。