首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在页面导航过程中UWP页面加载速度较慢

在页面导航过程中UWP页面加载速度较慢
EN

Stack Overflow用户
提问于 2018-01-14 05:08:48
回答 1查看 392关注 0票数 0

我有一个XAML页面,它创建了一个48x48图像的网格(一个图像拼贴)。当用户导航到此页面时,我加载了拼贴的配置,并将项目添加到C#中的网格中,并设置其Grid.RowGrid.Column字段。如下所示:

代码语言:javascript
复制
private void InitializeGrids()
{
    // Set row definitions and column definitions
    // ...

    for (int i = 0; i < dimensions; i++)
    {
        for (int j = 0; j < dimensions; j++)
        {
            var cell = new ImageCell()
            {
                Row = i,
                Column = j
            };
            Grid.SetRow(cell, i);
            Grid.SetColumn(cell, (j * 10));
            Contents.Children.Add(cell);
        }
    }
}

当用户从不同的页面点击按钮导航到这个页面时,我看到一个很好的可见延迟,大约8-10秒。

在这里,如果我在启动时直接加载页面,应用程序在几秒钟内就可以正常加载。

为什么在页面导航上添加元素要花很多时间?

EN

回答 1

Stack Overflow用户

发布于 2018-01-14 16:03:08

因为我认为ImageCell使用了太多的时间,你应该让UI在导航中做出响应。

在WinForm中,我们可以使用PushFrame来消耗一些UI线程资源。但在UWP中,我们可以使用Dispatcher.RunIdleAsync

尝试使用以下代码

代码语言:javascript
复制
    for (int i = 0; i < dimensions; i++)
        {
            for (int j = 0; j < dimensions; j++)
            {
                await Dispatcher.RunIdleAsync(o =>
                {
                    var cell = new ImageCell()
                    {
                        Row = i,
                        Column = j
                    };
                    Grid.SetRow(cell, i);
                    Grid.SetColumn(cell, j);
                    Grid.Children.Add(cell);
                });
            }
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48244326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档