【问题标题】:Slowness switching TabItems缓慢切换 TabItems
【发布时间】:2012-01-27 19:57:03
【问题描述】:

我有一个带有多个 TabItem 的 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" />

是一个树视图加上一些图表 (&lt;charting:Chart.Series&gt;),这是较慢的选项卡。我确保当我们切换到该选项卡时代码不会调用服务。那么还有什么可能是延迟的原因呢?

【问题讨论】:

  • 看看你的控件加载的事件处理程序,如果有的话。

标签: c# wpf tabitem


【解决方案1】:

这是 TabControl 的奇怪标准行为 - 它是在切换时卸载项目,因此您必须稍微扩展它以在切换时保留缓存的 TabItems,请参阅本文中的示例了解更多详细信息:Keeping the WPF Tab Control from destroying its children

【讨论】:

  • 你怎么知道的?迪迪你已经试过了吗?我在第一次使用 TabCONtrol 时遇到了同样的问题,这对我有帮助。也许您观察到与 TabControl 本身无关但与您的代码相关的问题?
猜你喜欢
  • 1970-01-01
  • 2014-09-09
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多