2011-03-24 20 views
5
<Window x:Class="EffectsWindow.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     DataContext="{Binding RelativeSource={RelativeSource Self}}"> 

    <ListView ItemsSource="{Binding EffectsViewModel.Effects}"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Width="200" Header="Effects"> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock HorizontalAlignment="Center" 
             Text="{Binding Name}" 
             TextAlignment="Center" /> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 
      </GridView> 
     </ListView.View> 
    </ListView> 

</Window> 

Effect僅僅是一個類型有一個返回字符串的Name屬性,但文本仍沒有其細胞內居中。如何將TextBlock放置在GridViewColumn中? (包括樣品XAML)

關於如何解決它的任何想法?

回答

5

可以舒展HorizontalContentAlignmentItemContainerStyle

<ListView ItemsSource="{Binding EffectsViewModel.Effects}"> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
     </Style> 
    </ListView.ItemContainerStyle> 
    <!--...--> 
</ListView> 

更新

你應該能夠在交替行的顏色與HorizontalContentAlignment這樣的結合。我嘗試過了,它似乎是工作

<ListView ItemsSource="{Binding EffectsViewModel.Effects}" 
      AlternationCount="2"> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
      <Style.Triggers> 
       <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
        <Setter Property="Background" Value="LightBlue"></Setter> 
       </Trigger> 
       <Trigger Property="ItemsControl.AlternationIndex" Value="2"> 
        <Setter Property="Background" Value="LightGray"></Setter> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListView.ItemContainerStyle> 
    <!--...--> 
</ListView> 
+1

謝謝,但代碼中心所有ListViewItems,對不對?我只想讓一些列成爲中心,而其他列則保持原樣(左對齊)。 – 2011-03-24 20:42:33

+1

@Joan Venge:它將居中設置'Horizo​​ntalAlignment ='Center''的列,否則它將左對齊(或你指定的任何東西) – 2011-03-24 20:49:45

+0

Meleak,這是有效的。謝謝,但有一個小問題。基本上我使用這種交替的顏色:http://blogs.msdn.com/b/vinsibal/archive/2008/05/28/wpf-3-5-sp1-feature-alternating-rows.aspx在那裏的第一個xaml例子,這也設置了風格,所以他們似乎沒有工作在一起工作。是否有可能將這些結合起來? – 2011-03-24 21:08:30

0

嘗試使用一個應用程序像snoop目視檢查您的應用程序的性能,你能看到的東西不一樣對準你的期望。

+0

謝謝我做了,但仍然沒有幫助我什麼導致它不居中。 – 2011-03-24 20:41:45

相關問題