/ / ScrollViewer / ListBoxの高さを画面の高さに固定する方法は? - xaml、listbox、windows-phone-8.1、scrollviewer、uwp

ScrollViewer / ListBoxの高さを画面の高さに固定する方法は? - xaml、listbox、windows-phone-8.1、スクロールビューア、uwp

Universal Windows Platformアプリケーションを持っています。 一番上にボタン、リストボックス、そしてリストボックスの下にボタンがあるScrollViewerがあります(リストボックスをScrollViewerの中に置くのはお勧めできませんが、これは私のコードではないので変更できません)。実装)。 ScrollViewerのVerticalScrollModeとVerticalScrollBarVisibilityは両方ともfalseに設定されているため、垂直方向にスクロールすることはできません(これも要件です)。

ListBoxに多くの項目が含まれている場合は、高さリストの高さはデバイスの高さよりも大きくなります。その結果、ListBoxの一部とリストの下にあるボタンは使用できません(垂直スクロールが無効になっているため)。

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

ScrollViewerの高さを修正する方法はありますかデバイスの画面の高さは?そして、ListBoxの高さが、ListBoxがButton1とButton2の間のスペースに収まるようにのみ大きくなるように、ListBoxの高さを修正しますか。

回答:

回答№1は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に配置します。