如果TabControl-Items位于左侧,则不可见tabitem

本文关键字:tabitem TabControl-Items 于左侧 如果 | 更新日期: 2023-09-27 18:11:14

我有一个TabControl在它上面的应用程序。这个TabControl的tabitem是在应用程序运行时动态创建的。

创建TabControl的示例代码如下:
<TabControl x:Name="tcTabs" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="6" TabStripPlacement="Left"/>

如果我将TabStripPlacement设置为Top,我可以看到所有TabItems。但是在我的例子中,当TabStripPlacement被设置为Left时,可能会出现TabItems显示在应用程序的边界之外。

是否有机会获得像滚动查看器或其他东西,在那里我可以滚动到不可见的TabItems?或者将TabItems设置为左边框的两列或多列

如果TabControl-Items位于左侧,则不可见tabitem

就像xamlei已经提到的

你应该用ControlTemplate代替TabControl

这里是工作示例(这里是原始)

<TabControl TabStripPlacement="Left" Height="60">
    <TabControl.Template>
        <ControlTemplate TargetType="TabControl">
            <StackPanel Orientation="Horizontal">
                <ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled"  >
                    <TabPanel x:Name="HeaderPanel" Margin="2,2,2,0" IsItemsHost="true" />
                </ScrollViewer>
                <ContentPresenter x:Name="PART_SelectedContentHost"
                                      SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                      Margin="{TemplateBinding Padding}"
                                      ContentSource="SelectedContent"/>
            </StackPanel>
        </ControlTemplate>
    </TabControl.Template>
    <TabItem Header="Visible" >
        <Grid Width="100" Height="100" Background="Blue"/>
    </TabItem>
    <TabItem Header="Visible"/>
    <TabItem Header="Visible"/>
    <TabItem Header="inv" Background="Red">
        <Button Content="blubb"></Button>
    </TabItem>
    <TabItem Header="inv"/>
    <TabItem Header="inv"/>
    <TabItem Header="inv"/>
</TabControl>