StackPanel と TreeView を含むユーザー コントロールがあります。すべてのコントロールには Height="Auto" があります
ウィンドウでカスタム コントロールを使用して高さを設定すると、Height=800 とします。スタック パネルはこの高さまで大きくなりますが、TreeView は高さを自動調整しません。
ユーザーコントロール:
<UserControl x:Class="WPFDataBinding.ucCompanyTreeView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="200" Width="300" Loaded="UserControl_Loaded">
<StackPanel>
<TextBlock Background="#505050" Foreground="Gold">Companys</TextBlock>
<TreeView Name="myTreeView" ItemTemplate="{StaticResource DetailTemplate}">
</TreeView>
</StackPanel>
Window1.xaml:
<StackPanel Orientation="Horizontal">
<local:ucCompanyTreeView Width="400" Height="600">
</local:ucCompanyTreeView>
</StackPanel>
ユーザー コントロール内のスタック パネルの高さは増加しますが、ツリー ビューは増加しません。ツリー ビューをグリッドに配置しようとしましたが、どこでも同じ設定 Height="Auto"、同じ設定 VerticalAlignment="Strech" どこでも同じです
Treeview はデータ バインドされていたので、データがバインドされた後の自動サイズ変更だと思っていましたが、このデータ バインドを削除しても同じ結果が得られました。
サイズ変更イベントを通じてそれを行うことができます....しかし、以前にこの問題が発生したことがあり、「一部の」コントロールの高さ継承の背後にあるロジックを理解したいだけです。