私はWindowsストアアプリに取り組んでいます。
たくさんのアイテムを含む ListView があります。一部のスタック パネルとグリッドにネストされていますが、基本的にはすべて自動サイズ調整されています。基本的に、ListView は、サイズに関係なく、画面の右半分の大部分に割り当てられます。
ListView にハード値の Height を指定すると、スクロールバーが自動的に表示され、余分な作業は必要ありません。偉大な。しかし、私は高さを設定したくありません...コンテナで利用可能なすべての領域にしたいのです。賢くしようとして9999か何かに設定すると、スクロールしません。
私はたくさんの調査を行ってきましたが、このような同様の質問は、ListView を保持するものは、StackPanel のように無限のサイズを与えることはできないと言っています。どのような代替手段がありますか? ListView を任意のスペースに配置して、スクロール バーを表示するにはどうすればよいですか?
私の唯一の考えは、ListViewを保持するコンテナで、高さがその値に設定されるように、使用可能なすべての領域があることをListViewに伝える何らかの方法が必要だということです。ListViewItem の HorizontalContentAlignment プロパティを 'Stretch' に設定して、ListView 内のアイテムを取得し、実際に利用可能な幅を知る方法と似ています。
私のレイアウトの本質的なビットはこれです:
<!-- Nested in some other stuff simple Grids and StackPanels, none of which has hard heights set (all auto or *) -->
<!-- Even if I made this a Grid with one Row, setting definition to * or Auto doesn't help the issue - no scroll bar appears -->
<StackPanel>
<!-- Other stuff that has Visibility="Collapsed"... I have code so that only one item at a time within this container will ever be visible, and it gets all available space. -->
<ListView ItemsSource="{Binding SomeBigList}" ItemTemplate="{StaticResource MyDataTemplate}" />
<!-- Other stuff that has Visibility="Collapsed" -->
</StackPanel>
ハードな高さをどこにも設定せずに、スクロールバーを ListView に表示するにはどうすればよいですか? 助けてくれてありがとう。