たとえば、タブ コントロールがあり、タブが 50 個以上あるとします。タブをこれだけの数だけ保持するスペースが足りない場合、これらのタブをスクロール可能にするにはどうすればよいでしょうか?
ベストアンサー1
Rick の回答は、実際にはタブコントロール内のコンテンツの垂直方向の伸縮を壊します。StackPanel の代わりに 2 行のグリッドを使用することで、垂直方向の伸縮を維持するように改善できます。
<TabControl.Template>
<ControlTemplate TargetType="TabControl">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden" >
<TabPanel x:Name="HeaderPanel"
Panel.ZIndex ="1"
KeyboardNavigation.TabIndex="1"
Grid.Column="0"
Grid.Row="0"
Margin="2,2,2,0"
IsItemsHost="true"/>
</ScrollViewer>
<ContentPresenter x:Name="PART_SelectedContentHost"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Margin="{TemplateBinding Padding}"
ContentSource="SelectedContent" Grid.Row="1"/>
</Grid>
</ControlTemplate>
</TabControl.Template>