gpt4 book ai didi

c# - ProgressRing 变为非事件状态

转载 作者:行者123 更新时间:2023-11-30 17:08:50 39 4
gpt4 key购买 nike

我正在构建一个需要从互联网下载 RSS 数据的 Windows 8 应用程序。

有一个等待的 GetFeedsAsync() 方法负责此操作,在我的应用程序主页的(异步)LoadState 方法中调用。

我选择将该任务委托(delegate)给后台线程:

await Task.Run(() => feedDataSource.GetFeedsAsync());

我只想显示一个 ProgressRing 并保持它处于事件状态,直到该过程完成并且下载的数据已准备好显示。

我在 XAML 中定义了 ProgressRing:

<ProgressRing  x:Name="LoadingProgressRing" IsActive="True"  Foreground="White" Margin="0,400,0,0" Width="80" Height="80" VerticalAlignment="Top"  Canvas.ZIndex="1" />

然后在代码隐藏中添加这两行:

LoadingProgressRing.IsActive = true;
await Task.Run(() => feedDataSource.GetFeedsAsync());
LoadingProgressRing.IsActive = false;

当应用程序启动时,它会导航到主页,ProgressRing 会在其中显示 1 秒钟然后消失。数据下载在 20 秒后完成,然后正常显示。

为什么 ProgressRing 会这样?在

之前,我想不出有什么理由让它不活动
LoadingProgressRing.IsActive = false;

命令被执行。

最佳答案

尝试将 Grid.Row="1" 添加到您的 ProgressRing 元素,即:-

<ProgressRing  x:Name="LoadingProgressRing" IsActive="True"  Foreground="White" Margin="0,400,0,0" Width="80" Height="80" VerticalAlignment="Top"  Canvas.ZIndex="1" Grid.Row="1"  />

编辑

为了澄清一点 - 我遇到了进度条出现一秒钟然后消失的确切问题,这与等待无关,而是因为我没有为进度条指定网格行我的页面。

我的页面有两行定义:

    <Grid.RowDefinitions>
<RowDefinition Height="140"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>

关于c# - ProgressRing 变为非事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13434124/

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