繁体   English   中英

C#WPF - 动态TabControl中的滚动条

[英]C# WPF - Scrollbar in dynamic TabControl

我正在尝试为每个TabItem添加一个滚动条,所以当内容太多时我可以向下滚动。 我试图将其设置为可见,但它不起作用。

TabItems将通过Header和Content动态添加到代码上。

在代码或XAML上水平和垂直添加滚动条的任何想法?

<TabControl x:Name="SemesterTabs" Margin="20,61,20,55" Width="584" HorizontalAlignment="Left">
    <TabControl.ContentTemplate>
        <DataTemplate>
            <StackPanel>
                <!-- Tabs mit Datagridview binden und nur ein Eintrag in den Tabs auswaehlbar machen -->
                <DataGrid IsReadOnly="True" SelectionMode="Single" FontStyle="Normal" ItemsSource="{Binding DefaultView}" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto" SelectionChanged="DataGrid_SelectionChanged">
                    <!-- Um Faecher mit Rechtsclick einfuegen, bearbeiten und loeschen zu koennen -->
                    <DataGrid.ContextMenu>
                        <ContextMenu>
                            <MenuItem Header="Hinzufügen" Click="addNewRow_Click"/>
                            <MenuItem Header="Bearbeiten" Click="editRowEntry_Click"/>
                            <MenuItem Header="Löschen" Click="deleteRowEntry_Click"/>
                        </ContextMenu>
                    </DataGrid.ContextMenu>
                </DataGrid>
            </StackPanel>
        </DataTemplate>
    </TabControl.ContentTemplate>
</TabControl>

StackPanel是问题,您必须将其删除。

为了理解原因,有必要将面板和容器控件视为具有外部尺寸的容器,即容器中容纳的尺寸,以及内部尺寸,即它们为孩子提供的空间。

例如,在Grid ,外部大小和内部大小相同。 但在ScrollViewer ,内部大小可能是无限的,而外部大小则不是。

对于StackPanel也是如此,例如垂直方向。 这种面板的内部宽度与其外部宽度相同,但其内部高度是无限的。

现在,当您将ScrollViewer放置在这样的面板中时,它可能会根据需要显示水平滚动条以为其内容提供空间,但它永远不会显示垂直滚动条。 它不需要,因为它的外部高度可以增长到无限,因此,它的内部高度也可以不必使用滚动条。

问题是Stackpanel。 不知何故,它阻止了我的TabItems中的Scrollviewer。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM