2009-09-09 8 views

risposta

10

È necessario impostare uno stile con il set AlternationIndex. This page dà un esempio

(definizione dello stile)

<Style x:Key="CustomListViewItemStyle" TargetType="{x:Type ListViewItem}"> 
    <Style.Triggers> 
     <Trigger Property="ItemsControl.AlternationIndex" Value="0"> 
      <Setter Property="Background" Value="#2C2C2C"></Setter> 
     </Trigger> 
     <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
      <Setter Property="Background" Value="#262626"></Setter> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

(usando lo stile definito)

<ListView ItemContainerStyle="{DynamicResource CustomListViewItemStyle}" 
      AlternationCount="2"> 
    ... 
</ListView> 
0
' Snipet demonstrating how to alternate colors per N rows of DataGrid using code (VB.Net without Xaml). Uses .Net 3.5 feature of AlternationIndex, AlternationCount 
' Assumes DataGrid1 is defined in Window1 
' Alternation can be on any size (row count) 
     Dim BackgroundStyle As New Style 
     BackgroundStyle.TargetType = GetType(DataGridRow) 
     For i As Integer = 1 To alternationRows 
      Dim tr As New Trigger 
      tr.Property = ItemsControl.AlternationIndexProperty 
      tr.Value = i - 1 
      Dim st As New Setter 
      st.Property = BackgroundProperty 
      st.Value = New SolidColorBrush(Color.FromRgb(CByte(&HFF - i * 8), CByte(&HFF - i * 8), CByte(&HFF - i * 8))) 
      tr.Setters.Add(st) 
      BackgroundStyle.Triggers.Add(tr) 
     Next 
     DataGrid1.ItemContainerStyle = BackgroundStyle 
     DataGrid1.AlternationCount = BackgroundStyle.Triggers.Count 
Problemi correlati