左にスリムなバーとしてトグルボタン/ヘッダーを持つエキスパンダーを作成しようとしていますが、展開すると、ウィンドウの残りの部分が塗りつぶされ、既に存在する素材も塗りつぶされます。
それを行う最善の方法が何であるかはよくわかりません。おそらく2列のグリッドを考えました。最初にエキスパンダーがあり、2 番目に他の素材があります。次に、Expander IsExpanded のときに 2 番目の列幅をゼロに設定するトリガーを用意します。
それを機能させる方法や、適切に行う方法さえよくわかりません。
コード例を次に示します。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Name="SecondColumn" Width="*" />
</Grid.ColumnDefinitions>
<Expander ExpandDirection="Right" IsExpanded="True">
<Expander.Resources>
<Style TargetType="Expander">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Expander" >
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="True" >
<Setter TargetName="SecondColumn" Property="ColumnDefinition.Width" Value="0" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Expander.Resources>
<ListBox >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</Expander>
<TabControl Grid.Column="1" />
</Grid>
展開したときにリストボックスが表示されないようにします。それ以外の場合は、TabControl
何か案は?