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