gpt4 book ai didi

c# - *任何* wpf 控件的动画背景不透明度

转载 作者:太空宇宙 更新时间:2023-11-03 16:24:59 25 4
gpt4 key购买 nike

我想要一种可以使任何 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 提供比其中的控件更多的宽度,然后尝试通过传递 GroupBox 的实例来运行上述动画代码。我希望这会有所帮助。

关于c# - *任何* wpf 控件的动画背景不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12887980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com