问题描述
||
我想对如何在每种情况下确定在发生隧道事件和冒泡事件的情况下,确定哪个控件是发送方,哪个控件是WPF路由事件事件的源进行清楚的解释。
编辑:
假设您有一个事件处理程序和两个控件,其中一个控件是另一个的孩子。该处理程序在父控件中。我将如何事先知道并且没有调试哪个控件作为发送者传递,哪个控件作为e.source传递?考虑到冒泡事件或隧道事件时,这种变化是否会改变?事件的一般概念对我很清楚,但我想了解在事件处理程序中使用哪个参数来识别两个控件而无需调试
解决方法
可能没有详尽的“清晰的解释”,因为您可以通过多种方式结束事件。尤其是当许多事件使用ѭ0时,因为除了来源之外没有其他详细信息。
http://msdn.microsoft.com/zh-CN/library/17sde2xt(v=VS.100).aspx
或者,更具体地说:
RoutedEvent:来源与原始来源
您有需要回答的特定问题吗?
编辑:从上面的链接的文章,与您的评论类似的答案
考虑一个由TextBlock组成的自定义控件(在本示例中称为CustomControl1)。
当在TextBlock上引发MouseDown事件时,OriginalSource属性将为
TextBlock,但在CustomControl1 \的处理程序中,源将更改为CustomControl1
对象,以便沿事件路线的其他元素将知道CustomControl1收到了
按下鼠标。