2012-04-15 70 views
0

因此,我將擴展器的方向更改爲垂直對齊而非水平對齊,但在關閉狀態下,擴展器標題文本水平對齊。請告訴我有一種方法可以輕鬆地解決這個問題,而不表達融合等擴展器標題文本對齊

<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> 

不幸的是,這樣做是爲了擴展:

enter image description here

它把文本頂部和中間的按鈕,我希望頂部的按鈕和按鈕後的文本?

如果我將Path=ActualWidth更改爲Height該按鈕向上移動,但標題文本仍然保留在按鈕左側,而不是下面的按鈕?

回答

2

指定通過TextBlockHeaderelement syntax和應用RotateTransformTextBlockLayoutTransform得到的旋轉。如果你想垂直文本can be done differently

+3

你能告訴我一個例子IM完全陌生呢? – 2012-04-15 17:14:05

+1

@KirstyWhite:我可以,但我不想。看看鏈接... – 2012-04-15 17:14:50

+1

那好吧然後我會等待一個實際的答案:) – 2012-04-15 17:28:43

1

支持以上建議的示例here

1

我的解決方案(沒有其他屬性) - 基於H.B.謝赫Neyamat答案:

<Expander ExpandDirection="Right"> 
    <Expander.Header> 
    <TextBlock Text="Header"> 
     <TextBlock.LayoutTransform> 
     <RotateTransform Angle="90"/> 
     </TextBlock.LayoutTransform> 
    </TextBlock> 
    </Expander.Header> 
    // Content - listbox in my case 
</Expander>