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