2013-06-04 37 views
1

我注意到根据: http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.sizechanged%28v=vs.95%29.aspxWPF如果sizechanged事件不会冒泡,它会隧道吗?

sizechanged事件不会向上冒泡到父元素。那么它是否向下隧道?我只是很好奇sizechanged是如何工作的。在元素上的大小发生变化后,事件是否在某个方向上传播,直到处理完为止?如果它不传播,那它怎么是一个路由事件。

+0

可能不相关,但您通常不处理WPF中的事件。并且绝对不要使用SizeChanged事件在WPF中进行布局。你想做什么? –

回答

3

实际上有第3个routing strategy。既不起泡也不起作用的直接事件仅由一个控制器和FrameworkElement.SizeChanged引发,这正是这些事件之一。

+2

也应该注意,父控件中的'SizeChanged'也可以在子控件中触发'SizeChanged',所以即使事件本身没有向下冒泡,也可能有多个直接的'SizeChanged'事件触发。 – Rachel

+0

如果由于布局更新导致只有'ActualWidth'或'ActualHeight'发生更改,则技术上更改一个控件的大小甚至可以触发每个控件上的'SizeChanged'事件。 – dkozl