我有這樣的情況:如何訪問與高度元素的實際高度=自動
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="560"/>
<ColumnDefinition Width="250"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <!-- status infos & content start -->
<RowDefinition Height="Auto" /> <!-- status infos -->
<RowDefinition Height="Auto" /> <!-- status infos -->
<RowDefinition Height="Auto" /> <!-- status infos -->
<RowDefinition Height="*"/> <!-- content ends -->
</Grid.RowDefinitions>
<!-- image a list of custom controls directed to the first or second column on all rows here -->
<SomeCustomControl Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Grid.RowSpan="2" />
</Grid>
正如你可以看到我有2列,右邊一個是狀態信息或多或少的保留,該留下內容。 「SomeCustomControl」包含一個如此寬的控件,需要將其設置爲ColumnSpan =「2」。請注意,右列中仍然有狀態控制。在SomeCustomControl我有這樣的事情:現在
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="250"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
[...]
<RowDefinition Height="Auto" />
<RowDefinition Height="*" /> <!-- problem control here -->
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- a list of Controls limited to the first column -->
<ProblemControl Grid.Column="0" Grid.ColumnSpan="2" />
</Grid>
,SomeCustomControl的第一行包含限於第一列控制,再有就是包含我ProblemControl一行。狀態控件的高度不是預先確定的,取決於顯示的狀態信息。 SomeCustomControl中限於第一列的控件也有不同的高度,目前通過內容自動確定。
我現在有ProblemControl與我的一些狀態控件重疊的問題。我試圖計算我的狀態控件的高度以及SomeCustomControl中的有限控件的高度,但是由於所有控件都是動態調整大小的,我似乎無法得到正確的高度。 RowDefinitions的高度都包含類型爲Auto的值和值爲1的高度,具體控件的高度似乎爲NaN。
任何想法如何我可以計算高度或防止其他方式的重疊。
由於控件只是可見的,所以這個值似乎包含「舊」值(0表示元素只是可見的,一些值取決於現在改變的狀態信息)。 嗯,也許我可以找到一些事件,把計算在控制可見後觸發。 Thx爲ActualHeight無論如何。我猜想爲什麼我不需要新眼鏡的原因搜索時間已經結束了:P – gsnerf 2009-07-03 14:45:27