开发者

How to distinguish between Sender and Source in WPF routed events

I would like to have a clear explanation about how to determine in each situation which control is the sender and which one is the source for a WPF Routed Event event both in the case of tunnelli开发者_C百科ng and bubbling events.

Edit: Suppose you have an event handler and two controls one child of the other. The handler is in the parent control. How would I know beforehand and without debugging which control is passed as the sender and which one as the e.source? And does this change when you consider bubbling or tunnelling events?The general concept of events is clear to me, but I would like to understand which parameter to use in the eventhandler to indentify both controls without debugging


There probably isn't an exhaustive "clear explanation", because there are so many ways you could end up with events. Especially when a lot of events use EventArgs.Empty, because there are no other details, other than the source.

http://msdn.microsoft.com/en-us/library/17sde2xt(v=VS.100).aspx

or, more specificly:

RoutedEvent: Source vs. OriginalSource

Do you have a specific question you need answered?

Edit: from the above linked article, with an answer similar to your comment

Consider a custom control (called CustomControl1 in this example) that is composed of a TextBlock. When a MouseDown event is raised on the TextBlock, the OriginalSource property will be the TextBlock, but in CustomControl1's handler, the Source will be changed to the CustomControl1 object so that other elements along the event's route will know that CustomControl1 received a MouseDown.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜