gpt4 book ai didi

c# - 使用 WPF 动画淡出任何控件

转载 作者:太空狗 更新时间:2023-10-29 23:48:45 28 4
gpt4 key购买 nike

我想在我的 WPF 项目中切换控件(按钮、文本框、面板等)的不透明度,并想检查我是否正确完成了操作。

我的问题是:这是您通常用 XAML 编写的功能类型,还是您会使用类似于下面的代码来实现淡入/淡出结果?

internal static class AnimationExtensions
{
internal enum TransitionSpeed
{
Instant = 0,
Fast = 100,
Normal = 200,
Slow = 500
}

/// <summary>
/// Toggles the opacity of a control.
/// </summary>
/// <param name="control">The control.</param>
internal static void ToggleControlFade(this Control control)
{
control.ToggleControlFade(TransitionSpeed.Normal);
}

/// <summary>
/// Toggles the opacity of a control.
/// </summary>
/// <param name="control">The control.</param>
/// <param name="speed">The speed.</param>
internal static void ToggleControlFade(this Control control, TransitionSpeed speed)
{
Storyboard storyboard = new Storyboard();
TimeSpan duration = new TimeSpan(0, 0, 0, 0, (int)speed); //

DoubleAnimation animation = new DoubleAnimation { From = 1.0, To = 0.0, Duration = new Duration(duration) };
if (control.Opacity == 0.0)
{
animation = new DoubleAnimation { From = 0.0, To = 1.0, Duration = new Duration(duration) };
}

Storyboard.SetTargetName(animation, control.Name);
Storyboard.SetTargetProperty(animation, new PropertyPath("Opacity", 0));
storyboard.Children.Add(animation);

storyboard.Begin(control);
}
}

您可能会说我对 WPF 非常非常陌生。

谢谢

最佳答案

我倾向于在需要在动画后执行操作的地方或动画依赖于复杂触发器的地方找到代码隐藏是最好的地方,否则 XAML 是放置动画的好地方。 (我通常为转换或简单的“onclick”类事件执行此操作。

关于c# - 使用 WPF 动画淡出任何控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2236346/

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