Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF中的水平可折叠面板_C#_Wpf - Fatal编程技术网

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”
我意识到这是一个非常古老的问题,但这是我搜索“水平可折叠扩展器”,所以我想我应该发布我想出的答案。