C# ContentPresenter。仅第一次呈现内容时速度较慢

C# ContentPresenter。仅第一次呈现内容时速度较慢,c#,wpf,user-controls,rendering,C#,Wpf,User Controls,Rendering,我正在开发一个“动画书”应用程序,用户可以在页面上滑动,或按按钮向左或向右翻页。每次成功触发动画事件后,都会为新显示的页面设置新内容。但是,只有在第一次加载特定页面时,每隔一段时间,它就会有1-2秒的延迟,并且工作正常。下面是导致这种奇怪延迟的代码: if (_currentSheetIndex == 0) { sheet0Page0Content.Content = null; sheet0Page1Content.Content = null; sheet0Page2

我正在开发一个“动画书”应用程序,用户可以在页面上滑动,或按按钮向左或向右翻页。每次成功触发动画事件后,都会为新显示的页面设置新内容。但是,只有在第一次加载特定页面时,每隔一段时间,它就会有1-2秒的延迟,并且工作正常。下面是导致这种奇怪延迟的代码:

if (_currentSheetIndex == 0)
{
    sheet0Page0Content.Content = null;
    sheet0Page1Content.Content = null;
    sheet0Page2Content.Content = null;
}
else
{
    sheet0Page0Content.Content = GetPage(2 * (CurrentSheetIndex - 1) + 1);
    sheet0Page1Content.Content = GetPage(2 * (CurrentSheetIndex - 1));
    sheet0Page2Content.Content = GetPage(2 * (CurrentSheetIndex - 1) - 1);
}

sheet1Page0Content.Content = GetPage(2 * CurrentSheetIndex);
sheet1Page1Content.Content = GetPage(2 * CurrentSheetIndex + 1);
sheet1Page2Content.Content = GetPage(2 * CurrentSheetIndex + 2);

internal object GetPage(int index)
{
    if ((index >= 0) && (index < Items.Count))
        return Items[index];

    Canvas c = new Canvas();

    return c;
}
if(_currentSheetIndex==0)
{
sheet0Page0Content.Content=null;
sheet0Page1Content.Content=null;
sheet0Page2Content.Content=null;
}
其他的
{
sheet0Page0Content.Content=GetPage(2*(CurrentSheetIndex-1)+1);
sheet0Page1Content.Content=GetPage(2*(CurrentSheetIndex-1));
sheet0Page2Content.Content=GetPage(2*(CurrentSheetIndex-1)-1);
}
sheet1Page0Content.Content=GetPage(2*CurrentSheetIndex);
sheet1Page1Content.Content=GetPage(2*CurrentSheetIndex+1);
sheet1Page2Content.Content=GetPage(2*CurrentSheetIndex+2);
内部对象GetPage(int索引)
{
如果((索引>=0)和&(索引

sheet0Page0Content和其他是ContentPresenter类型。项目是用于向书籍页面显示内容的用户控件。我尝试搜索各种渲染类型和虚拟化,认为问题可能与渲染速度慢有关,但运气不佳。对此有何想法?

您可以在第一次加载时添加一个进度环来娱乐用户?我正在寻找问题的根本原因。我可以像你建议的那样实现一个解决方案,但我更想知道为什么会发生这种情况。那么分析你的代码呢?