之前有写过两篇元素之间的颜色
wpf 非常漂亮ItemsControl 里面的元素间隔不同的颜色
现在有一个需求,
1)每个元素之间要有间隔颜色
2)当这个元素里面空时,则不显示颜色
以下就是完整的例子
<ItemsControl AlternationCount="2" x:Name="listMsg" Margin="0 150 0 0" Padding="0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Width="49" FontSize="10" Margin="0 0 1 0" Height="50" Padding="0 20 0 0" TextAlignment="Center">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContentPresenter}, Path=(ItemsControl.AlternationIndex)}" Value="0">
<Setter Property="Background" Value="#bae7ff"/>
<Setter Property="Foreground" Value="#022A3C" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContentPresenter}, Path=(ItemsControl.AlternationIndex)}" Value="1">
<Setter Property="Background" Value="#ff7a45"/>
<Setter Property="Foreground" Value="#FFFFFF" />
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="">
<Setter Property="Background" Value="Transparent"/>
<!-- 文本为空时背景色为透明 -->
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="{x:Null}">
<Setter Property="Background" Value="Transparent"/>
<!-- 文本为null时背景色为透明 -->
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="{x:Static sys:String.Empty}">
<Setter Property="Background" Value="Transparent"/>
<!-- 文本为String.Empty时背景色为透明 -->
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>