編輯:我重寫幾乎整個問題,因爲我意識到這個問題是不正確的和混淆。我爲此道歉,但是這個問題有錯誤的假設,導致無法回答。我最初試圖簡化它,使其更容易理解,但這使我無法複製我的問題。Silverlight 4 - ScrollViewer和子DataGrid MinHeight
如果我在一個ScrollViewer
有一個MinHeight
一個DataGrid
,我希望隨着我的視口縮小,元素的ActualHeight
將降低,直到達到MinHeight
滾動條顯示出來了。
相反,它似乎在DataGrid的行累積的高度比MinHeight
加起來,這個值覆蓋了minHeight
有沒有辦法做到這一點,而無需手動上漿一切,並有一噸的代碼?
例子:
<ScrollViewer VerticalScrollBarVisibility="Auto" Background="Red">
<Grid x:Name="LayoutRoot" Background="Black" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition MinHeight="20"/>
<RowDefinition Height="80"/>
</Grid.RowDefinitions>
<sdk:DataGrid AutoGenerateColumns="True" Name="dataGrid1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MinHeight="20" />
<Rectangle Fill="Blue" Width="100" Height="80" Grid.Row="1" />
</Grid>
</ScrollViewer>
如果你要填充該網格與某些行,如果你將窗口最大化,電網佔據了大部分的空間,並具有行後的空白。如果將其縮小,則佈局將從空白處移開,直到該空間用完,然後根級ScrollViewer
開始使用,即使尚未達到MinHeight
。
如果用另一個矩形替換DataGrid
,行爲會有所不同(顯然)。新的矩形會縮小到高度20.
如何使用網格實現此目的?我的要求是在我的SL頁面上嵌套滾動條(我發現這令人不快,但它不在我的控制範圍內)。這個想法是頂級滾動條是各種各樣的「最後的手段」。
你可以發佈元素模板的XAML嗎?我猜測原因可能是內容保持高於你想要的水平。 – dain 2011-06-02 12:25:33