WPF中的FrameworkElement存在两个属性,Height和ActualHeight。
其中ActualHeight表示的是元素重绘制后的尺寸,并且是只读的。也就是说其始终是真实值。
而Height属性,是可读写的,并且有如下特性:
(1)Height属性值可以为0或者是Double.NaN。出现Double.NaN值是因为Xaml中设置了元素的Size为Auto。
(2)当我们设置Height值时,UI元素未必以设置的Height值进行显示,因为Height值仅仅是一个建议值,最终显示的尺寸即ActualHeight并不一定等于此建议值。
例如,
当Height的值小于MinHeight值时,元素将以MinHeight值进行显示,此时ActualHeight=MinHeight。
当Height的值大于MaxHeight值时,元素将以MaxHeight值进行显示,此时ActualHeight=MaxHeight。
综上,当我们开发的程序中需要读取元素高度时,应该采用ActualHeight,而不是Height。
Sample显示界面如下:
sample代码上传到此了:http://download.youkuaiyun.com/detail/u013376417/8420575