WPF 扩展器 - 水平对齐方式设置为“右”,但在展开时向左跳转

本文关键字:对齐 水平 扩展器 方式 设置 WPF | 更新日期: 2023-09-27 18:35:37

我有一个右对齐的WPF扩展器。 该位在屏幕上正确显示,但是当您展开它时,展开器和文本"显示/隐藏历史数据"会跳到屏幕左侧。 关闭扩展器,它将返回到正确的(右)对齐方式。

我已经尝试了各种方法,但无法找到为什么会发生这种情况,或者更重要的是如何保持扩展的扩展器右对齐

  <Grid Grid.Row="1"                    
    HorizontalAlignment="Stretch">
     <Grid.RowDefinitions>
      <RowDefinition Height="auto"/>
      <RowDefinition Height="auto"/>                               
     </Grid.RowDefinitions>
     <Grid.ColumnDefinitions>
       <ColumnDefinition Width="*" />
     </Grid.ColumnDefinitions>
      <StackPanel Grid.Row="0"  >
            <TextBlock Style="{StaticResource SubHeader}" Text="Historic Data Sets" />                                               
           <Rectangle Style="{StaticResource HeaderLine}"/>
      </StackPanel>
       <Expander Header="show/hide historic data"
                 Grid.Column="1"
                 IsEnabled="True" 
                 VerticalAlignment="Center" 
                 HorizontalAlignment="Right" 
                 ExpandDirection="Down">       
   <!-- some other stuff in the second row such as grid... -->
</Expander>

WPF 扩展器 - 水平对齐方式设置为“右”,但在展开时向左跳转

> YOu 可以通过显式将其标记为TextBlock来控制Header,然后将其更改为HorizontalAlignment属性:

<Expander.Header>
    <TextBlock 
        Width="200"
        HorizontalAlignment="Right"
        Text="Show information.."></TextBlock>
</Expander.Header>