Silverlight 调整元素大小后激发的事件

Silverlight 调整元素大小后激发的事件,silverlight,silverlight-4.0,Silverlight,Silverlight 4.0,这里有一个问题:在加载一些视觉元素后,我需要更改一些东西,了解它们的新大小。存在MeasureOverride方法,但在更改大小之前会调用该方法。有没有在它之后调用的方法 另外,我知道我可以用旧的尺寸来计算新的尺寸,但新的尺寸并不是简单地计算出来的。只使用这样一个事件(如果它存在的话)会容易得多。您正在寻找该事件吗 MSDN的说明: 当FrameworkElement上的ActualHeight或ActualWidth属性更改值时发生 编辑: 对SizeChanged和LayoutUpdated

这里有一个问题:在加载一些视觉元素后,我需要更改一些东西,了解它们的新大小。存在MeasureOverride方法,但在更改大小之前会调用该方法。有没有在它之后调用的方法

另外,我知道我可以用旧的尺寸来计算新的尺寸,但新的尺寸并不是简单地计算出来的。只使用这样一个事件(如果它存在的话)会容易得多。

您正在寻找该事件吗

MSDN的说明:

当FrameworkElement上的ActualHeight或ActualWidth属性更改值时发生

编辑:


SizeChanged
LayoutUpdated
事件都有很好的描述,包括布局循环如何工作的概述

感谢您的文章,但不幸的是,它也会在调整元素大小之前发生。“SizeChanged会在对象的大小(实际高度或实际宽度)发生变化时升高,并在测量和排列过程完成后升高。”-因此它会在调整元素大小之后发生。>>“因此它会在调整元素大小之后发生。”我希望这是真的,因为这会大大简化我的工作。我在我的应用程序上尝试了这个事件,实验发现它发生在实际调整大小之前。>>“每当对象的大小(实际高度或实际宽度)发生变化时,SizeChanged就会升高,并在测量和排列过程完成后升高。”阅读此引文后,我想一切都会按以下顺序进行:测量-排列-SizeChanged-视觉对象的实际大小调整。@Sergey,你一直说它以前发生过。你确定它不仅仅是被多次调用吗?如果在
SizeChanged
事件处理程序中放置断点,则它可能仅在“实际调整大小之前”发生。但是,每次更新大小时都会继续调用此事件。>>您确定它不会被多次调用吗?我确定它是每次调整一次。让我解释一下我的测试。我只是将MessageBox.Show(this.View.PlotRect.Width.ToString())放入SizeChanged事件处理程序。当我最大化窗口时,MessageBox显示559。当我将窗口缩小时,它显示1160。(当窗口变大时,视觉元素变大)。