[英]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.