我想要一个效果,我可以为任何GroupBox控件的背景不透明度设置动画效果。
这会给我额外的视觉通知,如果有什么改变 - 我可以刷新控制指示新的状态。*任何* wpf控件的动画背景不透明度
我
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>
所以我想任何分组框传递给KickoffFlashingAnimation()方法。
它运行良好,没有错误,但组合框在初始设置为淡绿色后不会改变颜色#ffd6efd1 ..
任何提示?
我真的不知道,“控”有“背景”的属性,但也许是因为你已经错过了“control.BackColor”它不会改变颜色?我只是猜测:) –
可能要广告,如果(controlToFade是分组框中){}检查,除非你想其他控件响应 – Wanabrutbeer