簡體   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