【发布时间】:2011-01-16 03:47:39
【问题描述】:
我想获得Grid 的实际Width(或Height)并将其显示在文本框中,但是当我调整我想要的窗口大小时,宽度/高度应该是“实时”的查看新尺寸。
我该怎么做?
更新:
这很好,但现在我想更进一步。
我需要变量中的实际宽度用于测试目的,例如设置一些 if 语句或缩放网格中的其他对象。
我该怎么做?
【问题讨论】:
我想获得Grid 的实际Width(或Height)并将其显示在文本框中,但是当我调整我想要的窗口大小时,宽度/高度应该是“实时”的查看新尺寸。
我该怎么做?
更新:
这很好,但现在我想更进一步。
我需要变量中的实际宽度用于测试目的,例如设置一些 if 语句或缩放网格中的其他对象。
我该怎么做?
【问题讨论】:
<Grid x:Name="myGrid">...</Grid>
<TextBox Text="{Binding ActualWidth,ElementName=myGrid}" />
(TextBox 当然可以在Grid 内。)
诀窍在于Width 只指定控件的初始宽度。 ActualWidth 是您应该绑定到的“实时”属性。
【讨论】:
Actual* 属性位于层次结构的较高位置,因此可用于除网格之外的许多其他控件。
回答你的第二组问题:
您可以将DependencyProperty 添加到Window 并将其绑定到Grid 的ActualHeight,方法与绑定TextBox 的Text 属性相同。
还可以将其他控件的其他属性绑定到Grid 的ActualHeight。如果您需要在两者之间进行计算,请使用 ValueConverter 将值更改为您需要的值。
【讨论】: