2011-03-24 2 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 속성이 있지만 텍스트는 여전히 셀 내부에 가운데 정렬되지 않습니다.GridViewColumn 안에 TextBlock을 센터링하는 방법은 무엇입니까? (예제 xaml 포함)

문제를 해결하는 방법에 대한 아이디어가 있으십니까? 당신은이 같은 HorizontalContentAlignment와 교류 행 색상을 결합 할 수 있어야 HorizontalContentAlignmentItemContainerStyle

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

업데이트

에 대한

답변

5

당신은 스트레치 할 수 있습니다. 나는 그것을 시도하고

<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

감사합니다.하지만 코드는 모든 ListViewItem을 가운데에 배치합니다. 맞습니까? 난 단지 일부 열을 가운데로, 다른 열은 그대로 (왼쪽으로 정렬) 싶습니다. –

+1

@ Joan Venge : 'HorizontalAlignment = "Center"'를 설정 한 열의 중심에 배치됩니다. 그렇지 않으면 왼쪽으로 정렬됩니다 (또는 지정한대로). –

+0

Meleak, 작동합니다. 고마워,하지만 작은 문제가있다. 기본적으로 나는이 색상을 번갈아 사용합니다. http://blogs.msdn.com/b/vinsibal/archive/2008/05/28/wpf-3-5-sp1-feature-alternating-rows.aspx 첫 번째 xaml 예제가 있는데, 스타일을 설정하기 때문에 함께 작동하는 것처럼 보이지 않습니다. 이들을 결합 할 수 있습니까? –

0

시각적으로 응용 프로그램의 속성을 검사에 snoop 같은 응용 프로그램을 사용해보십시오 작동하는 것 같군 및 예상처럼 일이 정렬되지 않은 위치를 알 수 있습니다.

+0

고마워 내가 했어. 그러나 그것이 나 중심에 있지 않게하는 원인이되는 것을 나에게 아직도 도움이되지 않았다. –

관련 문제