我想构建一个书籍应用程序,一个包含许多RichTextblockOverflows的RichTextblock,我在代码隐藏中创建溢出,并将它们添加到scrollviewer中的stackpanel。我测试了我的应用程序,发现它很快就完成了溢出,但之后它会阻塞一段时间(这是无法忍受的)来显示UI中的溢出。我注册了stackpanel的LayoutUpdated事件,发现在创建溢出后很长时间会触发它。
如何改善表现?感谢
while (true)
{
// for existing columns just set their width
var overflow = CreateOverflow(columnWidth, margin, lastOverflow);
lastOverflow = overflow;
overflow.Measure(availableSize);
_layoutPanel.Children.Add(overflow);
if (!overflow.HasOverflowContent)
{
overflow.UpdateLayout();
}
if (!overflow.HasOverflowContent)
{
_layoutPanel.LayoutUpdated += _layoutPanel_LayoutUpdated;
break;
}
}