为什么我的WPF数据网格的垂直滚动条不显示它';当包含在网格中时,它的全宽是多少?

为什么我的WPF数据网格的垂直滚动条不显示它';当包含在网格中时,它的全宽是多少?,wpf,xaml,datagrid,grid,scrollbar,Wpf,Xaml,Datagrid,Grid,Scrollbar,我有一个WPF usercontrol,它包含一个包装在网格中的DataGrid。 usercontrol位于StackPanel中包装的TabControl中的我的主应用程序窗口中 我遇到的问题是,我无法完全显示DataGrid的垂直滚动条。它被“剪裁”,因此只有1/2的宽度可见 以下是我的UserControl的XAML定义: <UserControl x:Class="Sample.Views.SampleView" Width="{Binding Rela

我有一个WPF usercontrol,它包含一个包装在网格中的DataGrid。 usercontrol位于StackPanel中包装的TabControl中的我的主应用程序窗口中

我遇到的问题是,我无法完全显示DataGrid的垂直滚动条。它被“剪裁”,因此只有1/2的宽度可见

以下是我的UserControl的XAML定义:

<UserControl x:Class="Sample.Views.SampleView"
             Width="{Binding RelativeSource={RelativeSource FindAncestor, 
                        AncestorType={x:Type StackPanel}},Path=ActualWidth}"
             Height="{Binding RelativeSource={RelativeSource FindAncestor, 
                        AncestorType={x:Type StackPanel}},Path=ActualHeight}">
    <Grid Name="PastDueInvoicesGrid" >
        <DataGrid Name="PastDueInvoicesDataGrid" 
                AutoGenerateColumns="False"
                Margin="0,0,0,3"  
                GridLinesVisibility="None"
                IsReadOnly="True"
                SelectionMode="Extended"
                SelectionUnit="CellOrRowHeader"
                HorizontalScrollBarVisibility="Auto"  
                VerticalScrollBarVisibility="Auto" 
                AllowDrop="False" >
        </DataGrid>
    </Grid>
</UserControl>
<StackPanel Grid.Row="1" x:Name="stackPanelAccountDetailViewContainer"
  Orientation="Vertical">
  <TabControl x:Name="tabContainerContainer"
   TabStripPlacement="Bottom" 
   Height="{Binding Path=ActualHeight,
     RelativeSource={RelativeSource Mode=FindAncestor,
     AncestorType={x:Type StackPanel}}}"
    Width="{Binding Path=ActualWidth,
    RelativeSource={RelativeSource Mode=FindAncestor,
    AncestorType={x:Type StackPanel}}}">
   </TabControl>
</StackPanel>

这就是StackPanel/TabControl的定义:

<UserControl x:Class="Sample.Views.SampleView"
             Width="{Binding RelativeSource={RelativeSource FindAncestor, 
                        AncestorType={x:Type StackPanel}},Path=ActualWidth}"
             Height="{Binding RelativeSource={RelativeSource FindAncestor, 
                        AncestorType={x:Type StackPanel}},Path=ActualHeight}">
    <Grid Name="PastDueInvoicesGrid" >
        <DataGrid Name="PastDueInvoicesDataGrid" 
                AutoGenerateColumns="False"
                Margin="0,0,0,3"  
                GridLinesVisibility="None"
                IsReadOnly="True"
                SelectionMode="Extended"
                SelectionUnit="CellOrRowHeader"
                HorizontalScrollBarVisibility="Auto"  
                VerticalScrollBarVisibility="Auto" 
                AllowDrop="False" >
        </DataGrid>
    </Grid>
</UserControl>
<StackPanel Grid.Row="1" x:Name="stackPanelAccountDetailViewContainer"
  Orientation="Vertical">
  <TabControl x:Name="tabContainerContainer"
   TabStripPlacement="Bottom" 
   Height="{Binding Path=ActualHeight,
     RelativeSource={RelativeSource Mode=FindAncestor,
     AncestorType={x:Type StackPanel}}}"
    Width="{Binding Path=ActualWidth,
    RelativeSource={RelativeSource Mode=FindAncestor,
    AncestorType={x:Type StackPanel}}}">
   </TabControl>
</StackPanel>

我尝试了几种不同的方法,但我似乎无法让垂直滚动条显示其全宽。它的水平边界似乎超过了容器的宽度

如何使其正确显示


谢谢

在提问时,您应该始终提供一个最小、完整且可验证的问题示例:

但是,任何人都不可能重现您的问题并告诉您如何解决它

不过,这里有一些要点。不要设置
选项卡控件
用户控件
宽度
(或
高度
)。它们将拉伸以填充父级
StackPanel

<StackPanel Grid.Row="1" x:Name="stackPanelAccountDetailViewContainer" Orientation="Vertical">
    <TabControl x:Name="tabContainerContainer" TabStripPlacement="Bottom">
    </TabControl>
</StackPanel>

<UserControl x:Class="Sample.Views.SampleView">
    <Grid Name="PastDueInvoicesGrid" >
        <DataGrid Name="PastDueInvoicesDataGrid" 
                AutoGenerateColumns="False"
                Margin="0,0,0,3"  
                GridLinesVisibility="None"
                IsReadOnly="True"
                SelectionMode="Extended"
                SelectionUnit="CellOrRowHeader"
                HorizontalScrollBarVisibility="Auto"  
                VerticalScrollBarVisibility="Auto" 
                AllowDrop="False" >
        </DataGrid>
    </Grid>
</UserControl>

我不确定这个问题,但通常我会避免同时使用StackPanel和ScrollViewer。对我来说,它经常给我的scrollviewer的行为带来问题。