gpt4 book ai didi

.net - RoutedEventArgs 与 EventArgs

转载 作者:行者123 更新时间:2023-12-03 13:22:20 30 4
gpt4 key购买 nike

我正在学习 WPF/Silverlight,并在 MS 视频广播中看到现在建议使用 RoutedEventArgs超过 EventArgs ;虽然它没有确切说明原因。

我有一个 win forms 应用程序,它使用“小部件”接口(interface)来尝试不绑定(bind)到特定的显示技术(在 Presenters/ViewModels 中),所以如果我的 IButton Click 事件现在需要采用 RoutedEventArgs现在我想它没那么有用了。

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

顺便说一句,在我描述它们时,是否有其他人对使用界面小部件有经验/意见?

最佳答案

好吧,基本上是 RoutedEvent穿越Logical树,从源元素到根元素(Bubble 事件路由),或者从根元素到子级别元素的频率较低(Tunnel 事件路由)。这意味着如果你有一个 Button StackPanel 的内部,它本身就在 Grid 的内部;如果你定义一个 Click控件中的事件,除非其中一个处理它,否则它们都会触发它。

如果事件路由是Bubble (命名为常规事件 Click ),它将去:
Button -> StackPanel -> Grid
如果事件路由是Tunnel (名为 PreviewClick ),它会反过来:
Grid -> StackPanel -> Button
所以现在有了处理,这很简单。如果是 Bubble路线和Button设置RoutedEventArgs.Handled真的,那StackPanelGrid不会触发它。与 RoutedEvent 相同, 如果 Grid处理它,StackPanelButton不会触发它。

简而言之,这是我的理解,为了简单起见,我避免了一些东西。

我推荐this chapter为了更好地理解这个 WPF 功能。

关于.net - RoutedEventArgs 与 EventArgs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1428037/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com