嗯,我正在尝试使用 ColorAnimation 更改 DataTemplate 中 StackPanel 的背景颜色:
<DataTemplate DataType="{x:Type logic:Sensor}">
<StackPanel Name="SensorPanel" MouseDown="SensorPanel_MouseDown">
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Status}" Value="0">
<!--<Setter TargetName="SensorPanel" Property="Background" Value="LawnGreen" />-->
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="SensorPanel"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
To="LawnGreen" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="4">
</ColorAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
没有编译时错误。但是,当我运行此命令时,会引发 InvalidOperationException:“'Background' 属性未指向路径 '(0).(1)' 中的 DependencyObject。”
什么? :D
最佳答案
你的代码非常适合我。我只是做了一些小的修改。
<DataTemplate DataType="{x:Type Model:Sensor}">
<StackPanel Name="SensorPanel" Background="LightBlue" Width="100" Margin="5">
<TextBlock Text="{Binding Name}"/>
<ToggleButton Margin="2" IsChecked="{Binding IsChecked}" Content="Set status=0" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Status}" Value="0">
<!--<Setter TargetName="SensorPanel" Property="Background" Value="LawnGreen" />-->
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="SensorPanel"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
To="LawnGreen" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="4">
</ColorAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
<ListBox ItemsSource="{Binding Sensors}" />
关于wpf - 使用 ColorAnimation 更改 StackPanel 背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9748432/