【发布时间】:2011-03-16 10:12:50
【问题描述】:
我正在尝试创建一个扩展器,它有一个切换按钮/标题作为左侧的细长条,但是当展开时会填充窗口的其余部分,甚至是已经存在的材料。
我不太确定最好的方法是什么。我可能想到了一个有 2 列的网格。首先是膨胀机,其次是其他材料。接下来,我将有一个触发器,当 Expander IsExpanded 时将第二列宽度设置为零。
我不确定如何让它工作,甚至如何正确地做到这一点。
下面是一些代码示例:
<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
有什么想法吗?
【问题讨论】: