我想要一個效果,我可以爲任何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