![](/img/trans.png)
[英]WPF What is the difference between setting the background to transparent and setting opacity on the control?
[英]Animate background opacity of *any* wpf control
我想要一種可以使任何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后,groupbox不會更改顏色。
有小費嗎?
嗨,我已經嘗試了上面的代碼,並且對我來說對Groupbox來說效果很好.Groupbox可能存在問題,即它的所有Content區域都填充了其他控件,這些控件最終隱藏了Background.So,只需對其進行測試,就可以給您的GroupBox內容比控件中的寬度更大,然后嘗試通過傳遞GroupBox的實例來運行上面的動畫代碼,希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.