如何在运行时获取WPF元素的维度而不在编译时指定它们

时间:2010-09-09 00:06:18

标签: c# wpf size

问题?

<UI:PanelBrowser Margin="12,27,12,32"></UI:PanelBrowser>

WPF很荒谬,因为在这种情况下不手动指定属性(如宽度和高度)会导致它们具有值Doulbe.NaN。问题是我需要知道这个数字。我不打算在XAML中手动设置宽度和高度,因为这会阻止它调整大小。

鉴于上面的XAML(此对象是Border控件的一个简单子类),如何在运行时获取Width和Height属性的值?

编辑:

哇,我觉得很荒谬。我读到了ActualWidthActualHeight,但他们一直为我返回0和0。原因是我在实际初始化之前在Framework Element的构造函数中测试了这些属性。希望这有助于遇到同样问题和测试谬误的人。 :)

3 个答案:

答案 0 :(得分:10)

请尝试使用FrameworkElement.ActualWidthActualHeight属性。

答案 1 :(得分:1)

您可以使用元素'ActualWidthActualHeight属性来获取绘制时的宽度和高度值。

答案 2 :(得分:1)

WPF FrameworkElement类为此提供了两个DependencyProperties:FrameworkElement.ActualWidthFrameworkElement.ActualHeight将在运行时获取呈现的宽度和高度。