WPF中的多选项卡并行渲染,C#?

WPF中的多选项卡并行渲染,C#?,c#,wpf,tabs,C#,Wpf,Tabs,假设我有3个不同的浏览器选项卡项,我希望在打开窗口应用程序后同时加载和渲染所有选项卡 我的问题是:对于每个选项卡,是否有任何方法可以并行或线程渲染 窗口可以在其单独的UI线程中启动。但是选项卡将在当前窗口启动时的UI线程上呈现。您可以使用自定义模板对其进行破解,该模板使用列表框而不是默认的ContentPresenter: <TabControl> <TabItem Header="A"> <WebBrowser Sou

假设我有3个不同的浏览器选项卡项,我希望在打开窗口应用程序后同时加载和渲染所有选项卡


我的问题是:对于每个选项卡,是否有任何方法可以并行或线程渲染

窗口可以在其单独的UI线程中启动。但是选项卡将在当前窗口启动时的UI线程上呈现。

您可以使用自定义模板对其进行破解,该模板使用
列表框而不是默认的
ContentPresenter

   <TabControl>
        <TabItem Header="A">
            <WebBrowser Source="http://www.google.com/" />
        </TabItem>
        <TabItem Header="B">
            <WebBrowser Source="http://www.bing.com/" />
        </TabItem>
        <TabItem Header="C">
            <WebBrowser Source="http://www.yahoo.com/" />
        </TabItem>
        <Control.Template>
            <ControlTemplate TargetType="TabControl">
                <DockPanel>
                    <TabPanel IsItemsHost="True"
                              DockPanel.Dock="{TemplateBinding TabStripPlacement}" />
                    <ListBox ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Items}"
                             SelectedIndex="{TemplateBinding SelectedIndex}">
                        <ItemsControl.ItemsPanel>
                            <ItemsPanelTemplate>
                                <Grid />
                            </ItemsPanelTemplate>
                        </ItemsControl.ItemsPanel>
                        <ItemsControl.ItemContainerStyle>
                            <Style TargetType="ListBoxItem">
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="ListBoxItem">
                                            <ContentPresenter Content="{Binding Content}"
                                                              ContentTemplate="{Binding ContentTemplate}"
                                                              ContentTemplateSelector="{Binding ContentTemplateSelector}" />
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                                <Setter Property="Visibility"
                                        Value="Hidden" />
                                <Style.Triggers>
                                    <Trigger Property="IsSelected"
                                             Value="True">
                                        <Setter Property="Visibility"
                                                Value="Visible" />
                                    </Trigger>
                                </Style.Triggers>
                            </Style>
                        </ItemsControl.ItemContainerStyle>
                    </ListBox>
                </DockPanel>
            </ControlTemplate>
        </Control.Template>
    </TabControl>


选项卡控件的基本思想是一次只渲染一个选项卡。请注意,渲染仍然发生在一个线程上,但由于
WebBrowser
控件的性质,页面在后台加载。