我有一个状态栏,其中包含一个扩展器,以及一个包含一些内容的网格。我如何让扩展器展开网格,而不将其嵌套在状态栏中,以及在扩展时影响所有其他状态栏项目?
<StatusBar>
//Other status items
<Expander ExpandDirection="Up" Header="Operations" />
//Other status items
</StatusBar>
<Grid Name="the_grid" DockPanel.Dock="Bottom">
//Content
</Grid>
答案 0 :(得分:0)
你基本上想要与ComboBox功能相似的东西。查看ComboBox控件模板。 Combobox使用弹出控件在其他项目之上显示项目,并在组合框位置之外显示。
您可以编辑Expander的控件模板,并在那里使用类似的方法。
如果您不想花太多时间,可以使用小技巧:
<StatusBar>
<StatusBarItem Content="Item 1" />
<StatusBarItem Content="Item2" Margin="20,0" />
<Menu BorderThickness="0">
<MenuItem Header="Item 3 (expandable)" Foreground="{StaticResource Accent}" BorderThickness="0" Background="#333">
<MenuItem Header="Item 3.1" BorderThickness="0" />
<MenuItem Header="Item 3.2" BorderThickness="0" />
</MenuItem>
</Menu>
</StatusBar>