如何获得自动化WPF窗口的大小?

时间:2010-09-19 19:53:42

标签: c# wpf window size actualwidth

我有一个围绕它内容自动调整的窗口。对于动画,我需要它的宽度和高度。 ActualWidth始终是窗口的最大宽度,WidthHeight属性表示NaN。

3 个答案:

答案 0 :(得分:2)

ActualWidth / ActualHeight将为您提供窗口的实际大小 - 由布局系统给出,它基于窗口的实际渲染。这些应该是您正在寻找的尺寸。但是,计算可能会略有延迟,因为它基于渲染,所以如果它们是错误的,我猜它们还没有计算 - 并且你有一个竞争条件正在进行..你可以在链接中阅读更多相关信息上面,在计算实际尺寸的时候有一些重要的注意事项 - 因此 - 为什么它们会被延迟。

Width / Height是请求的尺寸,如果没有明确设置,它们将保留默认值,即Double.NaN。

答案 1 :(得分:2)

您可以使用窗口的UpdateLayout() - 方法验证ActualWidthActualHeight

答案 2 :(得分:0)

在动画尺寸更改时,您应尽可能使用ScaleTransform而不是更改HeightWidth值。它不仅可以帮助提高性能,还可以解决类似的问题,因为不是设置您可能不知道的特定大小值,而是将比例值指定为百分比。