我在expander中有一个datagrid,gatagrid具有10列以上。然后datagrid在扩展器中
应该滚动。但是它不能滚动以查看其他列。我的代码在下面。
<Expander Header="Attribute" VerticalAlignment="Top" Grid.Row="1" >
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible" CanContentScroll="True" Grid.Row="1" >
<DataGrid DataContext="{Binding}" Height="257" ItemsSource="{Binding}" MinHeight="200" Name="gridview1" Grid.Row="2" Grid.Column="0"
VerticalAlignment="Bottom" IsReadOnly="True"></DataGrid>
</ScrollViewer>
</Expander>
datagrid在其ControlTemplate中嵌入了scrollViewer。
因此您可以做两件事:
如果您真的想使用自己的scrollviewer(但是请注意,这样做会丢失诸如datagrid虚拟化之类的功能),此代码应起作用:
<Expander Header="Attribute" VerticalAlignment="Top" Grid.Row="1" >
<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" CanContentScroll="False" Grid.Row="1" >
<DataGrid Height="257" MinHeight="200" Name="gridview1" Grid.Row="2" Grid.Column="0"
VerticalAlignment="Bottom" IsReadOnly="True">
<DataGrid.Style>
<Style>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled" />
</Style>
</DataGrid.Style>
</DataGrid>
</ScrollViewer>
</Expander>
但是,我建议您仅此操作:
<Expander Header="Attribute" VerticalAlignment="Top" Grid.Row="1" >
<DataGrid Height="257" MinHeight="200" Name="gridview1" Grid.Row="2" Grid.Column="0" VerticalAlignment="Bottom" IsReadOnly="True">
<DataGrid.Style>
<Style>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Visible" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Visible" />
</Style>
</DataGrid.Style>
</DataGrid>
</Expander>
datagrid.style甚至不需要。