我有一个带有选项卡控件的网格。我的目标是在屏幕左侧显示一个选项卡列表,该列表可以滚动(典型情况下大约有10个选项卡)。但是,我无法使其滚动。
我尝试过的方法(来自此处的其他答案)没有起作用:
用户控件的基本代码在这里:
<UserControl.Resources>
<converters:StringToByteArrayConverter x:Key="StringToByteArrayConverter" />
<DataTemplate x:Key="GroupTemplate">
<DockPanel Background="{StaticResource LightGreyBrush}">
<Image
Width="210"
Height="240"
DataContext="{Binding DataContext.MyPageModel.MyGraphics.Groups[0], RelativeSource={RelativeSource AncestorType=TabControl, Mode=FindAncestor}}"
DockPanel.Dock="Top"
Source="{Binding Graphic, Converter={StaticResource StringToByteArrayConverter}}" />
<Label
HorizontalAlignment="Center"
Content="{Binding Name}"
DockPanel.Dock="Bottom" />
</DockPanel>
</DataTemplate>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="300" MaxHeight="510" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Grid.Column="0">
<TabControl
ItemTemplate="{StaticResource GroupTemplate}"
ItemsSource="{Binding MyPageModel.MyList.Groups}"
TabStripPlacement="Left">
<TabControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel
CanVerticallyScroll="True"
Orientation="Vertical"
ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.IsDeferredScrollingEnabled="False"
ScrollViewer.VerticalScrollBarVisibility="Visible" />
</ItemsPanelTemplate>
</TabControl.ItemsPanel>
</TabControl>
</Grid>
<Grid Grid.Row="1" />
</Grid>
如何使标签列表在此处可滚动?
编辑:这是我想要的可视化(大致来说,绘画技能不好):
答案 0 :(得分:1)
定义一个自定义ControlTemplate
,在其中将ScrollViewer
放在TabPanel
周围。
您还必须将Height
中第一个RowDefinition
的{{1}}从Grid
更改为Auto
:
*