WPF - 使用StringFormat时无法右对齐TextBlock

时间:2014-01-24 16:37:02

标签: wpf xaml

我在GridViewColumn中有一个TextBlock。我使用StringFormat格式化为货币。这会导致字段左对齐。我无法正确对齐。尝试了Horizo​​ntalAlignment和TextAlignment,但没有任何效果。

<TextBlock HorizontalAlignment="Right" Text="{Binding Path=Amount, StringFormat={}{0:€ # ##0}}" />
<TextBlock TextAlignment="Right" Text="{Binding Path=Amount, StringFormat={}{0:€ # ##0}}" />

如果我执行此操作from this post,它可以正常对齐所有列。我希望数字右对齐,日期居中和文字左。

<ListView.Resources>  
    <Style TargetType="ListViewItem">  
        <Setter Property="HorizontalContentAlignment" Value="Right" />  
    </Style>
</ListView.Resources>

有什么线索吗?

2 个答案:

答案 0 :(得分:2)

HorizontalContentAlignment设为Stretch。这将有效:

<ListView>
   <ListView.Resources>
      <Style TargetType="ListViewItem">
         <Setter Property="HorizontalContentAlignment" Value="Stretch" />
      </Style>
   </ListView.Resources>
   <ListView.View>
      <GridView>
         <GridViewColumn>
            <GridViewColumn.CellTemplate>
               <DataTemplate>
                  <TextBlock HorizontalAlignment="Right"
                       Text="{Binding Path=Amount, StringFormat={}{0:€ # ##0}}"/>
               </DataTemplate>
            </GridViewColumn.CellTemplate>
         </GridViewColumn>
      </GridView>
   </ListView.View>
 </ListView>

答案 1 :(得分:0)

将您的资源更改为Horizo​​ntalContentAlignment to Stretch,这将允许ListView中每个单元格的内容占用整个空间。然后您的Horizo​​ntalAlignment属性将起作用。