2011-06-30 33 views
1

在我的应用程序中,我在主窗口中有一个区域,可以随时包含几个不同的控件之一。WPF:找到控制需要多少空间

这个控件是在运行时生成的,它们的内容因底层数据而异,所以我不知道它们会占用多少空间。

我想知道的是:有没有一种方法可以在运行时确定控件需要多少空间才能不被“切断”或需要滚动?即:需要多少空间才能完全可见?

我尝试了“DesiredSize”属性,并将其还挺作品,但并非总是如此:如果控制已经被使用(它已经是一个大小),它返回它上次使用的大小,而不是正确的,即使我称之为“InvalidateMeasure()”。

任何想法??

回答

2

拨打电话Measure。给它无限的空间作为计算的可用大小。然后检查DesiredSize以获取所需的宽度(和/或高度)。

+0

谢谢,这似乎是正确的做法,做了一些测试,它的工作原理! –

+0

这种情况下不需要安排。 DesiredSize通过测量通过计算,而通过计算RenderSize。 –

+0

@Marat:你说得对,我已经改变了答案。 – HCL