我有一个很大的UserControl,它没有显示在主屏幕上,但用户以后几乎总是使用它。第一次加载需要花费一些时间(解析BAML等),然后很快构建其他实例。问题是如何使其在启动屏幕期间在应用启动时预加载?
我的想法是在启动时构造用例:
void Startup()
{
//....
new MyCustomControl();
//....
}
但是然后我必须处理特殊情况的构造(它没有没有args的默认构造函数)。我认为应该有更方便的方法。
最佳答案
要预加载复杂的UI,以便在实际在屏幕上“查看”时花费更少的时间,我们必须遵循以下步骤...
<Style TargetType="TextBlock">
<Style.Triggers>
<Trigger Property="IsVisible" Value="True">
<Setter Property="Text" Value="{Binding Value}"/>
</Trigger>
</Style.Triggers>
</Style>
在我们的应用程序中,我们采用了此类技术来实现复杂的UI,以快速加载并做出响应。一个这样的UI(当被查看时是地理 map )不仅会阻塞UI线程,而且还需要20秒的加载时间。使用上述步骤,负载减少到4秒,并且UI线程没有阻塞。
希望这些步骤对您也有帮助。