2010-10-04 97 views
1

这是一个问题:加载一些视觉元素后,我需要改变一些知道他们新尺寸的东西。有MeasureOverride方法,但在更改大小之前它被称为之后有没有什么方法叫做呢?元素大小调整后的事件

P.S.我知道我可以计算旧尺码的新尺码,但新尺码不能简单计算。只要使用这样的事件(如果存在的话)会容易得多。

回答

2

您是否在寻找FrameworkElement.SizeChanged活动?

MSDN的描述:

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

编辑:

This article既有SizeChangedLayoutUpdated事件,包括如何布局环路工程的概况的一个很好的说明。

+0

感谢您的文章,但不幸的是它也发生在元素调整大小之前。 – Sergey 2010-10-04 13:36:28

+0

“每当对象上的大小(ActualHeight或ActualWidth)发生更改时,都会引发SizeChanged,并且在Measure和Arrange次数完成后引发SizeChanged。” - 所以它确实发生在元素大小调整后。 – Denis 2010-10-04 20:22:14

+0

>>“所以它确实发生在元素大小调整后。” 我希望它是真的,因为它会简化我的工作。我在我的应用程序上尝试过这个事件,并通过实验发现它在实际调整大小之前发生。 >>“只要对象上的大小(ActualHeight或ActualWidth)发生了变化,并且在完成”测量“和”排列“过程之后引发了SizeChanged,就会引发此问题。” 阅读完此引文后,我想所有事情都按以下顺序进行:Measure - Arrange - SizeChanged - 实际调整视觉对象的大小。 – Sergey 2010-10-05 13:05:50