そこで、エキスパンダーの向きを水平方向ではなく垂直方向に揃えるように変更しましたが、閉じた状態では、エキスパンダーのヘッダーテキストは水平方向に揃えられています。エクスプレッションブレンドなどを使わずにこれを簡単に修正する方法があることを教えてください。
<Expander Header="My Header">
AlignHeaderText
私は垂直のようなものを望んでいましたが、それに対する選択肢がありませんか?誰かが私に「見せて」くれる別の方法を持っていますか?
それで、私がこれを思いついたという条件で、メンタリングHBから取った:
<StackPanel Orientation="Horizontal" Margin="0,0,342,0" Width="318">
<StackPanel.Triggers>
<EventTrigger RoutedEvent="Expander.Expanded" SourceName="expander1">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation From="0" To="1.2" Duration="0:0:0.45" Storyboard.TargetName="content" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleX)"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</StackPanel.Triggers>
<Expander ExpandDirection="Right" Name="expander1" OpacityMask="#6C806969" Background="#FF807171">
<Expander.LayoutTransform>
<RotateTransform Angle="90"></RotateTransform>
</Expander.LayoutTransform>
<Expander.Header>
<TextBlock
Text="HEADER"
Width="{Binding
RelativeSource={RelativeSource
Mode=FindAncestor,
AncestorType={x:Type Expander}},
Path=ActualWidth}"
/>
</Expander.Header>
<Grid x:Name="content" Background="#FF807171" Width="178">
<Grid.LayoutTransform>
<ScaleTransform ScaleX="0" ScaleY="1"/>
</Grid.LayoutTransform>
</Grid>
</Expander>
残念ながら、これはエキスパンダーに対して行われます。
テキストが上部に配置され、ボタンが中央に配置されます。上部にボタンがあり、ボタンの後にテキストがあることを期待していましたか?
ボタンに変更Path=ActualWidth
するとHeight
上に移動しますが、ヘッダーテキストはボタンの左側にあり、ボタンの下にはありませんか?