gpt4 book ai didi

c# - WPF 在控件上淡出

转载 作者:IT王子 更新时间:2023-10-29 04:51:48 26 4
gpt4 key购买 nike

在我的 WPF 应用程序中,我有一个反馈控件,我希望它在用户操作完成后(保存数据、删除...)出现。可见性设置为 Hidden to begin,样式设置为定义为资源的 animateFadeOut 样式(见下文)。然后我想在我的 C# 代码中将文本和控件可见性设置为可见,并让反馈控件显示消息并在 5 秒后淡出并保持隐藏状态 (Visibility.Hidden)。

以下 XAML 在我第一次调用 control.Visiblity= Visibility.Visible 时有效,但该控件不会在第二次出现。我认为这是因为动画仍在运行,它控制着反馈控制。然后我尝试将 FillBehavior 设置为“停止”,但这只是使控件再次可见,我希望它隐藏。然后,通过 FillBehavior="Stop",我尝试设置一个触发器“当不透明度 = 0 时,将可见性设置为隐藏”。触发器似乎没有触发,动画完成后我再次看到可见控件。

请帮忙指出我这里做错了什么。

或者,如果您能建议一种更好的方法来显示一个控件,该控件在 5 秒后消失并且可以被反复调用,我将不胜感激。

谢谢!

<Style TargetType="{x:Type FrameworkElement}" x:Key="animateFadeOut">
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Trigger.EnterActions>
<BeginStoryboard >
<Storyboard>
<DoubleAnimation BeginTime="0:0:5.0" Storyboard.TargetProperty="Opacity"
From="1.0" To="0.0" Duration="0:0:0.5"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>

最佳答案

问题是当你的动画完成后你的控件仍然是Visibility=Visible,所以不能再次进入。
我宁愿使用完成所有操作的动画,首先显示控件,然后隐藏它。

<Storyboard x:Key="animate">
<ObjectAnimationUsingKeyFrames BeginTime="0:0:0" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimation BeginTime="0:0:0.0" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.2"/>
<DoubleAnimation BeginTime="0:0:5.0" Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.5"/>
<ObjectAnimationUsingKeyFrames BeginTime="0:0:5.5" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Hidden</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>

并按如下方式使用它:

((Storyboard)FindResource("animate")).Begin(someControl);

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

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