C# 扩展器标题具有不正确的宽度和旋转的文本

C# 扩展器标题具有不正确的宽度和旋转的文本,c#,wpf,xaml,C#,Wpf,Xaml,我有一个(右方向)扩展器,它应该在展开时隐藏标题,并在折叠时显示一些旋转为垂直向下的文本。 我已通过以下代码实现了这一点: <Expander Grid.Column="1" ExpandDirection="Left" IsExpanded="True" Name="rightHandExpander" MaxWidth="{Binding RelativeSource={RelativeSource PreviousData}}"> <Ex

我有一个(右方向)扩展器,它应该在展开时隐藏标题,并在折叠时显示一些旋转为垂直向下的文本。 我已通过以下代码实现了这一点:

<Expander Grid.Column="1" ExpandDirection="Left" 
      IsExpanded="True" Name="rightHandExpander"
      MaxWidth="{Binding RelativeSource={RelativeSource PreviousData}}">
    <Expander.Header>
        <TextBlock Text="Header text" RenderTransformOrigin="0,0"
            Visibility="{Binding IsExpanded, RelativeSource={RelativeSource 
                         AncestorType={x:Type Expander}, Mode=FindAncestor}, 
                         Converter={StaticResource boolToVisibilityConverter}}">
            <TextBlock.LayoutTransform>
                <TransformGroup>
                    <RotateTransform CenterX="25" CenterY="25" Angle="90" />
                </TransformGroup>
            </TextBlock.LayoutTransform>
        </TextBlock>
    </Expander.Header>
    <!-- controls here -->
</Expander>

但是,当展开器折叠时,标题会占用太多的空间-文本会旋转,但标题的宽度似乎保持不变,就好像它没有旋转一样

在代码隐藏中使用VisualTreeHelper,我发现扩展器的标题、边框和dockpanel太大,但内部的切换按钮大小正确。我尝试将标题、边框和dockpanel的宽度设置为正确的大小,但它们没有改变

有人能帮忙吗

编辑:
扩展器包含在一个网格中,该网格有两列,第一列中有一个网格拆分器和另一个扩展器。另一个扩展器也做同样的事情,但会折叠到左手边-不过,这个扩展器似乎工作正常。

我相信将“HorizontalAlignment”设置为“Right”可能会修复您得到的行为,因为网格中大多数控件的默认行为将填充其单元格中的所有可用空间。但奇怪的是,你的左扩展器可以正常工作,除非它不直接在网格中,或者将HorizontalAlignment设置为left?

你能在代码中发布更多关于如何将扩展器设置到容器中的代码吗(可能是网格,我看到grid.Column)。如果你将扩展器单独放在页面/窗口中,它的行为如何?
网格
控件可能正在拉伸您的
扩展器
以适应列的大小。您可以发布所有网格xaml吗?它将比文字更为清晰。感谢这有帮助!我认为这是包括水平对齐的组合,并且我设置了lhs面板的MaxWidth,因此右侧面板不能完全折叠。