缓慢切换TabItems
本文关键字:TabItems 缓慢 | 更新日期: 2023-09-27 18:21:28
我有一个包含多个TabItems的TabControl。偶尔,我会经历从一个选项卡切换到另一个选项卡的缓慢加载时间。首先想到的是服务,但在切换选项卡时,应用程序似乎没有调用服务
<TabControl Visibility="{Binding MenuVisible}" Name="MenuControl" Grid.Row="1" >
<TabItem Header="Business Rules Alerts" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="250" />
</Grid.RowDefinitions>
<ContentControl cal:RegionManager.RegionName="GraphAlertsRegion" Margin="0" />
<!-- Grid for UserListRegion and EventListRegion -->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- EventList region -->
<ContentControl Grid.Column="0" cal:RegionManager.RegionName="EAlertsListRegion" Margin="0" />
</Grid>
</Grid>
</TabItem>
<TabItem Header="Business Rules">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".5*" />
<RowDefinition Height=".5*" />
</Grid.RowDefinitions>
<ContentControl Grid.Row="0" cal:RegionManager.RegionName="BusinessRulesListRegion" Margin="0" />
<Grid Grid.Row="1">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ItemsControl cal:RegionManager.RegionName="BusinessRulesWizardRegion" Margin="0" />
</ScrollViewer>
</Grid>
</TabItem>
</TabControl>
有办法提高性能吗?特别是
<ContentControl cal:RegionManager.RegionName="GraphAlertsRegion" Margin="0" />
是一个treeView加上一些图(<charting:Chart.Series>
),这是一个较慢的选项卡。我已经确保当我们切换到该选项卡时,代码不会调用该服务。那么,延迟的原因还有什么呢?
这是TabControl的奇怪标准行为-它在切换时卸载项目,因此您必须稍微扩展它以在切换时保持缓存的TabItems,请参阅本文中的示例中的更多详细信息:防止WPF选项卡控件破坏其子