2015-09-02 107 views
0

我有一個通用Windows平臺應用程序。我有一個ScrollViewer,其頂部有一個按鈕,一個列表框和ListBox下面的一個按鈕(我知道在ScrollViewer中有一個ListBox不是一個好習慣,但這不是我的代碼,我不能修改實施)。 ScrollViewer的VerticalScrollMode和VerticalScrollBarVisibility都設置爲false,所以不可能垂直滾動(這也是一個要求)。如何修復ScrollViewer/ListBox高度爲屏幕高度?

當ListBox包含很多項目時,列表的高度變得比設備高度大。結果列表框下方的一部分和列表下的按鈕不可用(因爲垂直滾動被禁用)。

<ScrollViewer> 
    <RelativeLayout> 
    ... 
    <Button name="Button1"> 
    ... 
    </Button> 
    <ListBox MinHeight="120"> 
    </ListBox> 
    <Button name="Button2"> 
    ... 
    </Button> 
    </RelativeLayout> 
</ScrollViewer> 

有沒有辦法將ScrollViewer的高度固定爲設備屏幕高度?並修復ListBox的高度,以便ListBox的高度僅增長,以便ListBox適合Button1和Button2之間的空間?

回答

1

你的問題不是scrollviewer的高度。它是擴展以容納其內容的列表框(它應該)。通過限制列表框的高度,你可以照顧到這一點。

您可以使用3行的網格。像這樣的東西

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <Button x:Name="ButtonTop" Grid.Row=0/> 
    <ListView x:Name="DontPutListViewInScrollViewer" Grid.Row=1/> 
    <Button x:Name="ButtonBottom" Grid.Row=2/> 
</Grid> 

請注意在中間行中定義的高度。這意味着列表視圖將佔用頂部和底部行可用的所有空間。

然後把這個網格放在ScrollViewer中。