gpt4 book ai didi

c# - XAML(Metro 应用程序)- 如何将 FadeInThemeAnimation 延迟一秒

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

我的 XAML 中有一个包含 ProgressRing 的网格,当应用程序执行长时间运行的任务时,它会淡入 View :

        <Grid Height="100" Width="100"  >
<Grid Background="#55000000" />
<ProgressRing x:Name="mapProgressRing" Width="50" Height="50" Foreground="White" />
</Grid>
</Border>

但是,我想将动画延迟 1 秒,其想法是如果任务在不到一秒内完成,则永远不会显示网格。从而避免在执行非常短的任务时网格不断闪烁。

但是,尽管在上面的 XAML 中设置了 BeginTime,网格总是立即开始淡入 View ,即使我在代码中尝试这样做也是如此。这是我的代码:

    void dataSou_WillStartFetchingSomething(object sender, EventArgs e)
{
// Don't bother fading in spinner unless it takes more than a second
showSpinner(TimeSpan.FromSeconds(1));
}
void Instance_WillEndFetchingSomething(object sender, EventArgs e)
{
hideSpinner();
}

#region Spinner
void showSpinner(TimeSpan? delayStartTime)
{
// Stop animation in case it's already running
mapRingFadeOutStoryBoard.Stop();
// Fade in, delaying the start by the specified time
mapRingFadeInStoryBoard.BeginTime = delayStartTime;
mapRingFadeInStoryBoard.Begin();
}
void hideSpinner()
{
// Stop the 'fade in' animation in case it's still running
mapRingFadeInStoryBoard.Stop();

// Fade out
mapRingFadeOutStoryBoard.Begin();
}
#endregion

我做错了什么?

最佳答案

不确定哪里出了问题,但您可以改用 async/await。只需将您的方法标记为异步,然后执行“await Task.Delay(1000)”以在开始动画之前等待一秒钟。

关于c# - XAML(Metro 应用程序)- 如何将 FadeInThemeAnimation 延迟一秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11950255/

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