サブクラス化された 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();
}
私はこれを行う正しい方法を肉屋にしていることを知っています-私はSetterで信じているDataTriggersを使用する必要があります。
私は広範な検索を行いましたが、それはすべて XAML であり、ほとんどが C# に解釈可能ですが、すべてではありません。
誰かがコードビハインドでこれを行う「正しい」方法を教えてもらえますか?