WPF选项卡中的滚动条项目问题

WPF选项卡中的滚动条项目问题,wpf,scrollbar,tabcontrol,Wpf,Scrollbar,Tabcontrol,我有一个选项卡控件,它有一整套可关闭的选项卡项,每个选项卡项都有一个具有可滚动部分的视图(每个视图都是同一个实例,而不是同一个实例),我遇到的问题是,如果在一个选项卡上滚动,它会级联到所有其他选项卡,我想知道是否有人能告诉我如何阻止这种情况发生? 谢谢大家:)如果您的TabControl指定了ContentTemplate,这是默认行为。TabControls使用虚拟化,因此在您切换选项卡时,它们将重复使用该模板,而不是每次创建一个新的模板 这意味着无论您在哪个选项卡上,都将使用相同的Scrol


我有一个选项卡控件,它有一整套可关闭的选项卡项,每个选项卡项都有一个具有可滚动部分的视图(每个视图都是同一个实例,而不是同一个实例),我遇到的问题是,如果在一个选项卡上滚动,它会级联到所有其他选项卡,我想知道是否有人能告诉我如何阻止这种情况发生?

谢谢大家:)

如果您的
TabControl
指定了
ContentTemplate
,这是默认行为。TabControls使用虚拟化,因此在您切换选项卡时,它们将重复使用该模板,而不是每次创建一个新的模板

这意味着无论您在哪个选项卡上,都将使用相同的
ScrollViewer
。您可以通过向
ScrollViewer
添加
Loaded
事件来证明这一点,您将看到它只被调用一次

一种解决方法是使用具有
x:Shared=“False”
的数据模板,这样它就不会共享该模板。我还没有测试过它是否有任何性能问题

<DataTemplate x:Key="TestTemplate" x:Shared="False">
    <local:UserControl1 />
</DataTemplate>

<Style x:Key="TabItemStyle" TargetType="{x:Type TabItem}">
    <Setter Property="Header" Value="Test" />
    <Setter Property="ContentTemplate" Value="{StaticResource TestTemplate}" />
</Style>

...

<TabControl ItemsSource="{Binding SomeCollection}"
            ItemContainerStyle="{StaticResource TabItemStyle}" />

...

请注意,这似乎是非常挑剔的。。。例如,我需要将我的
ScrollViewer
放入
UserControl
中,否则它将无法工作。我还需要设置
TabItem.ContentTemplate
而不是
TabControl.ContentTemplate

什么是滚动,文本框?选项卡页面中可滚动的控件是什么?