私はエクスパンダの中に複数のツリービューを持っています。しかし、高さがウィンドウのサイズよりも大きくなると、ウィンドウの外に出ます。WPFエクスパンダのサイズを制限する
明白な解決策は、利用可能な高さは- ウィンドウの高さ
- に依存するため、他のエクスパンダ(開放/閉鎖、ツリービューのMaxHeightのを設定するために、私はそれを容易に決定することができないであろう
)
ツリービューの高さを自動的に大きくしても、ウィンドウの高さよりも大きくする必要はありません。私は考えることができる
<StackPanel CanVerticallyScroll="True" ClipToBounds="False" Height="Auto" Name="StackPanel2" Width="250" DockPanel.Dock="Left" Orientation="Vertical" VerticalAlignment="Top" CanHorizontallyScroll="False" Margin="5">
<Border BorderThickness="0" CornerRadius="5" Padding="1" BorderBrush="Red" Margin="0,5" >
<Expander Header="Expander3" Height="Auto" IsExpanded="False" Width="Auto" Margin="2" BorderThickness="1">
<Grid Height="Auto" Width="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
<TreeView Height="Auto" BorderThickness="1" Margin="0,0,0,0" Padding="7" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
</TreeView>
</Grid>
</Expander>
</Border>
</StackPanel>
ありがとうございました!私もこの方法について考えましたが、実際にはスクロールバーがツリービュー内にあり、スタックパネルやエクスパンダでは必要ありません。したがって、3つのエクスパンダがある場合、最後のものだけがツリービューにスクロールバーを表示します。しかし、それが不可能であることが判明した場合、私は答えとしてあなたの解決策をマークします。 – Muis
@ジョシュア:これを正しく理解しているかどうかを確認してください。これは、最初と2番目のツリービューの高さがウィンドウの高さを越えて拡大しないことを意味しますか?それ以外の場合は、2番目のTreeViewが展開されて3番目のTreeViewがWindowの外側に「プッシュ」されるようになるとどうなるでしょうか?すべてのTreeViewは同じStackPanelにありますか? –
すべてのツリービューは同じスタックパネルにあります。あなたは、2番目のツリービューもウィンドウの外に広がって(3番目の目に見えないように)展開する可能性があるかもしれませんが、私のアプリではそうは考えられません。 3番目のツリービューが残りのスペースに基づいて自動サイズを実行するなら、それは私のために十分です;) – Muis