RoutedEventArgs VS的EventArgs [英] RoutedEventArgs vs EventArgs

查看:192
本文介绍了RoutedEventArgs VS的EventArgs的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我学习WPF / Silverlight和在MS vidcast看到它现在推荐使用 RoutedEventArgs EventArgs的;虽然它没有透露具体原因。

I am learning WPF / Silverlight and saw in an MS vidcast that it is now recommended to use RoutedEventArgs over EventArgs; although it didn't say exactly why.

我有一个双赢窗体应用程序使用的小工具界面,企图以不依赖于特定的显示技术(以presenters /的ViewModels),所以如果我的iButton点击事件,现在需要采取 RoutedEventArgs 现在,我想这是不是有用。

I have a win forms app that uses interfaces for "widgets" in an attempt to not be tied to a specific display technology (in Presenters / ViewModels), so if my IButton Click event now needs to take the RoutedEventArgs now I guess it isn't as useful.

有人可以解释,如果我应该切换到 RoutedEventArgs 在所有情况下,为什么?

Can someone please explain if I should switch to RoutedEventArgs in all cases and why?

顺便说一句,没有任何人有经验/关于使用界面部件为我描述他们的意见?

As an aside, does anyone else have experience / opinions about using interface widgets as I'm describing them?

推荐答案

好了,基本上一个 RoutedEvent 穿过逻辑树,无论是从顶部到底部(泡泡事件路由)或底部到顶部(隧道事件路由)。这意味着,如果你有一个按钮内部的的StackPanel ,这本身就是一个<$ C内$ C>电网;如果你定义了一个点击事件中,他们都将触发它的控制,除非其中一人的手柄的吧。

Well, basically a RoutedEvent travels through the Logical tree, either from top to bottom (Bubble event route) or bottom to top (Tunnel event route). What this means is that if you have a Button inside of a StackPanel, that itself is inside of a Grid; if you define a Click event in the controls they will all trigger it unless one of them handles it.

如果该事件的路线是泡泡(命名为定期举行的活动点击),它会:

If the event route is Bubble (named as a regular event Click), it will go:

按钮 - &GT; StackPanel中 - &GT;电网

如果该事件的路线是隧道(名为 previewClick ),它会去周围的其他方法

If the event route is Tunnel (named PreviewClick), it will go the other way around:

格 - &GT; StackPanel中 - &GT;按钮

所以,现在用的处理的,它是pretty的简单。如果它是一个泡泡路线和按钮设置 RoutedEventArgs.Handled 为true,的StackPanel 电网将不会触发它。同样的,在 RoutedEvent ,如果电网处理它,在的StackPanel 按钮将不会触发它。

So now with the handling, it's pretty simple. If it's a Bubble route and the Button sets the RoutedEventArgs.Handled to true, that StackPanel and Grid will not trigger it. Same with the RoutedEvent, if the Grid handles it, the StackPanel and Button will not trigger it.

这是我概括地说理解,我回避了一些工具和简易性。

This is my understanding in a nutshell, I avoided some stuff for simplicity.

我推荐<一href="http://books.google.com/books?id=XWu70Oqz6RIC&pg=PA137&lpg=PA137&dq=wpf+%5C%22sharing+resources+between+assemblies%22&source=bl&ots=FMQU9g3whX&sig=rhK8YR-OUddEKmSBMqZXv45gxNc&hl=en&ei=JlqpSqf5NNKBtge6jqXYBw&sa=X&oi=book_result&ct=result&resnum=1%23v=onepage&q=wpf%2520%2522sharing%2520resources%2520between%2520assemblies%2522&f=false">this章为了更好地理解这个WPF功能。

I recommend this chapter for better understanding of this WPF feature.

这篇关于RoutedEventArgs VS的EventArgs的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆