2014-01-24 4 views
1

У меня есть TextBlock внутри GridViewColumn. Я форматирую в валюте, используя StringFormat. Это приведет к выравниванию поля. Я не могу понять это правильно. Пробовал HorizontalAlignment и TextAlignment, но ничего не работает.WPF - Не удается выровнять текстовый блок при использовании StringFormat

<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

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

Это делает это красиво. Не знаю, понимаю ли я почему. Спасибо Джоэл тоже за тот же ответ. – Graeme

0

Измените свой ресурс на HorizontalContentAlignment to Stretch, это позволит содержимому каждой ячейки в ListView обрабатывать все пространство. Тогда ваши атрибуты HorizontalAlignment будут работать.

Смежные вопросы