2010-11-23 82 views
1

我正在構建一個SL 4應用程序。用戶界面由三個主要部分組成:頂部搜索欄,底部最喜歡欄以及兩者之間的頁面內容。我希望頁面內容佔用所有可用空間。現在,它橫向擴展,但不是垂直擴展。我不確定我做錯了什麼。這裏是XAML:Silverlight:如何讓此控件佔用所有可用空間?

<Grid x:Name="LayoutRoot" Background="BurlyWood"> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 

    <my:TopSearchBar x:Name="topSearchBar" Grid.Row="0" Navigator="{Binding ElementName=navigationFrame}" HorizontalAlignment="Stretch" VerticalAlignment="Top" /> 

    <!-- I want this to take up all available space between the bottom and top elements --> 
    <navigation:Frame x:Name="navigationFrame" Source="/HomePage.xaml" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="BlueViolet" /> 

    <my:BottomFavoritesBar x:Name="bottomFavoritesBar" Grid.Row="2" Navigator="{Binding ElementName=navigationFrame}" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" /> 

</Grid> 

我能做什麼錯?

回答

4
<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="*" /> 
    <RowDefinition Height="Auto"/> 
</Grid.RowDefinitions> 
+0

是不是`Height =「Auto」隱式? – 2010-11-23 20:16:04

+0

自動是隱含的,但重要的部分是「*」列。這告訴它佔用所有可用空間。如果沒有這3列將是自動的,這意味着內容所需的最低限度。 – Stephan 2010-11-23 20:31:40

1

我無法重現您的問題。對我而言,網格確實垂直擴展以填充其空間,並且其每個子控件佔用三分之一的高度。

你有沒有這個Grid裏面的東西,像一個StackPanel,它會阻止它填滿所有的垂直空間?

相關問題