Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WPF-动态选项卡控件中的滚动条_C#_Wpf - Fatal编程技术网

C#WPF-动态选项卡控件中的滚动条

C#WPF-动态选项卡控件中的滚动条,c#,wpf,C#,Wpf,我正在尝试为每个选项卡项添加一个滚动条,以便在内容过多时向下滚动。我试图将其设置为可见,但它不起作用 TabItems将在带有标题和内容的代码上动态添加 有没有在代码或XAML上水平和垂直添加滚动条的想法 <TabControl x:Name="SemesterTabs" Margin="20,61,20,55" Width="584" HorizontalAlignment="Left"> <TabControl.ContentTemplate>

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

TabItems将在带有标题和内容的代码上动态添加

有没有在代码或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上。不知何故,它在我的选项卡项中阻塞了Scrollviewer。

堆栈面板是问题所在,您必须将其删除

要理解原因,可以将面板和容器控件视为具有外部大小(即它们在容器中占据的大小)和内部大小(即它们为其孩子提供的空间)的容器

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

这同样适用于
堆叠面板
,比如垂直方向。此类面板的内部宽度与其外部宽度相同,但其内部高度是无限的


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

移除StackPanel您是否尝试使用了
滚动查看器
?@KrisVandermotten感谢它的工作。你知道为什么它不是那样工作的吗?