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