为什么我的WPF数据网格的垂直滚动条不显示它';当包含在网格中时,它的全宽是多少?
我有一个WPF usercontrol,它包含一个包装在网格中的DataGrid。 usercontrol位于StackPanel中包装的TabControl中的我的主应用程序窗口中 我遇到的问题是,我无法完全显示DataGrid的垂直滚动条。它被“剪裁”,因此只有1/2的宽度可见 以下是我的UserControl的XAML定义:为什么我的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
<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的行为带来问题。