【问题标题】:On tabChanged scrollbar scrolls to position which was in previous tab在选项卡上更改滚动条滚动到上一个选项卡中的位置
【发布时间】:2014-03-31 00:17:09
【问题描述】:

我有这样的TabControl

<TabControl HorizontalAlignment="Stretch"  
            Name="tabControl1" 
            IsSynchronizedWithCurrentItem="True"
            VerticalAlignment="Stretch" 
            Grid.Column="0" 
            ItemsSource="{Binding Workspaces}" 
            ItemTemplate="{StaticResource ClosableTabItemTemplate}" 
            SelectedItem="{Binding CurrentWorkspace, Mode=TwoWay}">
</TabControl>

工作区是 ViewModel 的 ObservableCollection

tabItem 的数据模板是

<DataTemplate DataType="{x:Type vm:TextViewerViewModel}">
        <ctls:TextViewerComponent/>
    </DataTemplate>

TextViewerComponent 包含

<!--<ScrollViewer Name="scv" CanContentScroll="True"  VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Grid.Row="1"  >-->
    <TextBox Name="logContent" IsReadOnly="True" TextWrapping="Wrap" Text="{Binding PageText}" VerticalScrollBarVisibility="Auto" Grid.Row="1" />
    <!--</ScrollViewer>-->

现在的问题是当我将标签滚动条更新位置更改为上一个标签的滚动位置时。如何解决这个问题?

【问题讨论】:

    标签: wpf mvvm binding


    【解决方案1】:

    使用绑定时,TabControl 会虚拟化其选项卡。这意味着始终使用相同的控件实例来呈现其内容。

    我在这个链接Tab virtualization找到了解决方案

    【讨论】:

      猜你喜欢
      • 2023-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 2013-08-17
      相关资源
      最近更新 更多