我已经能够在我的子类 TabItem 中使用以下代码执行上述操作:
protected override void OnSelected(RoutedEventArgs e)
{
base.OnSelected(e);
if (this.StoryBoard == null)
{
ColorAnimation anim = new ColorAnimation(Colors.Transparent, Colors.AliceBlue, new Duration(TimeSpan.FromSeconds(1)))
{
AutoReverse = true,
RepeatBehavior = RepeatBehavior.Forever
};
Storyboard.SetTarget(anim, this);
Storyboard.SetTargetProperty(anim, new PropertyPath("Background.Color"));
Storyboard sb = new Storyboard();
sb.Children.Add(anim);
this.StoryBoard = sb;
}
VisualTree.FindParent<OMWTabControl>(this).Items.Cast<OMWTabItem>().ToList().ForEach(n =>
{
if (n.StoryBoard != null)
{
n.StoryBoard.Stop();
}
});
this.StoryBoard.Begin();
}
我知道我正在采用正确的方法来做到这一点 - 我应该使用我相信的 DataTriggers 和 Setters。
我已经进行了广泛的搜索,所有内容都在 XAML 中,大部分都可以解释为 C#,但不是全部。
有人可以指出我在后面的代码中执行此操作的“正确”方法吗?