展開するとヘッダーを非表示にし、折りたたむと右側に垂直になるように回転してテキストを表示する(右方向)エキスパンダーがあります。次のコードを使用してこれを達成することができました:
<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 を使用すると、エキスパンダーのヘッダー、境界線、ドックパネルが大きすぎることがわかりましたが、内側のトグル ボタンは正しいサイズでした。ヘッダー、ボーダー、ドックパネルの幅を正しいサイズに設定しようとしましたが、変更されませんでした。
誰でも助けることができますか?
編集:エキスパンダーは、グリッドスプリッターと最初の列に別のエキスパンダーを持つ2つの列を持つグリッドに含まれています。もう一方のエキスパンダーも同じことを行いますが、左側に折りたたまれますが、このエキスパンダーは正しく機能しているようです。