C# WPF中的水平可折叠面板
我正在尝试创建一个侧面可折叠面板,其中包括C# WPF中的水平可折叠面板,c#,wpf,C#,Wpf,我正在尝试创建一个侧面可折叠面板,其中包括StackPanel 对于这种情况,请使用如下所示的Expander <Expander Width="auto" ExpandDirection="Left" HorizontalAlignment="Right"> <Expander.Header> <Border BorderBrush="Black" BorderThickness="1">
StackPanel
对于这种情况,请使用如下所示的Expander
<Expander Width="auto" ExpandDirection="Left" HorizontalAlignment="Right">
<Expander.Header>
<Border BorderBrush="Black" BorderThickness="1">
<StackPanel>
<Grid>
</Grid>
</StackPanel>
</Border>
</Expander.Header>
</Expander>
但这不能正常工作,无法实现我预期的功能。正如MaciekŚwiszczowski所说,您需要正确对齐扩展器,并将内容放入扩展器的上下文部分。另外,假设您希望它填充整个左侧部分,我建议您使用
网格来容纳它,如下所示:
例如:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Expander ExpandDirection="Right" HorizontalAlignment="Left">
<Border BorderBrush="Black" BorderThickness="1">
</Border>
</Expander>
</Grid>
下面是它的样子(我在扩展器中放了一个蓝色背景和一些文本,在第二列中放了一个红色的堆栈面板,以使它真正清晰)
扩展:
折叠:
如果您希望扩展器位于左侧,则水平对齐也应位于左侧。您要显示/隐藏的内容应该在Expander.Content中,而不是Expander.Header中。您建议提供相同输出的内容我将xml内容放在Expander.Content中,并更改了HorizontalAlignment=“Left”
我意识到这是一个非常古老的问题,但这是我搜索“水平可折叠扩展器”,所以我想我应该发布我想出的答案。