Как гласит заголовок, я пытаюсь изменить цвет фона ListViewItem
при загрузке элемента. Я могу изменить непрозрачность (мой XAML с очень чередованием):
<ListView Background="Black" ItemsSource="{Binding Somesource}" Drop="AddItem">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=OneWay}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Grid x:Name="SignalGrid">
<!-- Grid Information -->
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected}" Value="false">
<Setter TargetName="SignalGrid"
Property="Background"
Value="Transparent"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsSelected}" Value="true">
<Setter TargetName="SignalGrid"
Property="Background" Value="Blue"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard AutoReverse="True"
RepeatBehavior="6x">
<DoubleAnimation Duration="0:0:0.3"
Storyboard.TargetProperty="Opacity"
From="1.0" To="0.3"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
</ListView>
Это отлично работает, но это не та особенность, которую я хочу. Я пытался сделать storyboard
вроде:
<Storyboard AutoReverse="True" RepeatBehavior="6x">
<ColorAnimation Duration="0:0:0.3"
Storyboard.TargetProperty="(ListViewItem.Background).(SolidColorBrush.Color)" To="Blue"/>
</Storyboard>
Однако это ничего не делает. Я включил IsSelected
DataTriggers
, потому что основная идея заключается в том, что я хочу переключаться между IsSelected = true
на IsSelected = false
при первом добавлении элемента (то есть фон переключается между синим и черным). Я предполагаю, что моя проблема связана с Storyboard.TargetProperty="(ListViewItem.Background).(SolidColorBrush.Color)"
, и я уверен, что упускаю что-то простое, но любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ Я нашел решение. В <!-- Grid Information -->
у меня есть граница, поэтому я использовал это решение , чтобы решить мою проблему.