UIを作成中です。その中心的な要素は、さまざまなアイテム数のスタックパネルを持つスクロールビューアです。画面に十分なスペースがない場合は、スクロールビューアを使用してスタックパネルをクリックできるように、左右のボタンが表示されます。アイテムはすべて同じサイズであることに注意してください。スクロールビューワの幅を動的に調整する
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="LeftButton" Width="Auto"/>
<ColumnDefinition x:Name="Content" Width="*"/>
<ColumnDefinition x:Name="RightButton" Width="Auto"/>
</Grid.ColumnDefinitions>
これは問題なく動作しています。しかし、今では完全/完全なアイテムのみを表示する必要があります。だから、スタックパネルにもっと多くのアイテムがある場合は、画面上に表示できるよりも、右または左の部分アイテムが表示されたくありません。スクロールボタンが表示され、利用可能なアイテムがさらにあることが示されます。 したがって、子供がスタックパネルに追加された場合、スタックパネルを保持しているスクロールビューワは、すべてのアイテムを表示するのに十分なスペースが画面上にあるかどうかを確認する必要があります。そうでない場合は、幅を狭くして、次の(部分的に表示される)項目を隠すようにします。
私の質問は、スタックパネルのすべてのアイテムを画面に表示できるかどうかを判断する最も良い方法は何ですか。そうでない場合は、おそらく表示されている部分アイテムを隠すことができますか?
SizeChangedイベントに依存して、Scrollviewer自体の幅で遊んでいますが、これがこの動作を達成する最も賢明な方法であるかどうかはわかりません。初期化時にスクロールビューアのMaxWidthを決定し、それに応じて設定して成長させる方が良いでしょうか?事前に
おかげで、 好奇心
この目標を達成することをさらに困難にする問題は、スクロールビューアが設定されるとスクロールビューワの幅を変更できないことです。私が試してみると、それはまったく表示されません。 – curiosity