我想要一个可以为任何 GroupBox 控件的背景不透明度设置动画的效果。
如果发生变化,这会给我额外的视觉通知 - 我可以闪烁控件以指示新状态。
我有
private void ToggleBackgroundFade(Control control)
{
var duration = new TimeSpan(0, 0, 0, 0, 200);
var animation = new DoubleAnimation { From = 1.0, To = 0.0, Duration = new Duration(duration) };
// new brush because old one is frozen
control.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0xD6, 0xEF, 0xD1));
control.Background.BeginAnimation(OpacityProperty, animation);
}
private void KickoffFlashingAnimation(Control controlToFade)
{
controlToFade.Dispatcher.BeginInvoke(new Action(() =>
ToggleBackgroundFade(controlToFade))
);
}
和所有的风格
<Style x:Key="GroupBoxHeader" TargetType="{x:Type GroupBox}">
...
<Setter Property="Background" Value="#00D6EFD1" />
</Style>
所以我想将任何 GroupBox 传递给 KickoffFlashingAnimation() 方法。
它运行良好,没有错误,但最初设置为浅绿色#ffd6efd1 ..
任何提示后,组框不会改变颜色?