我有一个 DataGrid,上面有一些行。添加新行时,我想将背景设置为一些明亮的值,以向用户显示这些行是新添加的。当用户将鼠标悬停在一行上时,将其动画回正常颜色(透明)。
示例模型
public class Package
{
public string Name { get; set; }
public bool IsOversea { get; set; }
public DateTime TimeOfArrival { get; set; }
}
现在,我所能做的就是将一种颜色从当前颜色设置为透明。
<Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
<Setter Property="Background" Value="ForestGreen"/>
<Style.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(DataGridRow.Background).(SolidColorBrush.Color)"
Duration="00:00:02"
To="Transparent"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
但是如果该行有
IsOversea == true
.,我只想触发一次这个动画
如果可能的话,我也想将起始背景颜色绑定到一个属性。如果包裹已经等待交货超过 1 个月,则为红色,如果超过 1 周,则为黄色,一天为绿色。