如何启用WPF Datagrid上的滚动条?
当我从本文运行以下Northwind WPF Toolkit Datagrid代码时,我得到一个数据网格,但没有滚动条 ,因此用户只能看到部分数据网格。 我正在使用2009年3月的最新版本。
我需要指定什么,以便WPF Datagrid具有滚动条?
我试图把数据网格放在一个ScrollViewer,但没有帮助。
XAML:
<Window x:Class="TestDataGrid566.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit" Title="Window1" Height="600" Width="800"> <StackPanel> <toolkit:DataGrid x:Name="TheDataGrid" AutoGenerateColumns="True"/> </StackPanel> </Window>
后台代码:
using System.Linq; using System.Windows; using TestDataGrid566.Model; namespace TestDataGrid566 { public partial class Window1 : Window { public Window1() { InitializeComponent(); NorthwindDataContext db = new NorthwindDataContext(); var customers = from c in db.Customers select c; TheDataGrid.ItemsSource = customers; } } }
将DataGrid
放置在Grid
, DockPanel
, ContentControl
或直接放在Window
。 一个垂直方向的StackPanel
将给予它的孩子任何他们要求的垂直空间 – 即使这意味着它被渲染出视野。
WPF4
<DataGrid AutoGenerateColumns="True" Grid.Column="0" Grid.Row="0" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto"> </DataGrid>
与: <ColumnDefinition Width="350" />
& <RowDefinition Height="300" />
工作正常。
滚动条不显示<ColumnDefinition Width="Auto" />
& <RowDefinition Height="300" />
。
在嵌套在外部<Grid>
中的情况下,也可以很好地处理: <ColumnDefinition Width="*" />
& <RowDefinition Height="300" />
<Grid>
。
如果任何父容器RowDefinition Height设置为“Auto”,也是滚动条的停止符
或者,你可以设置高度“*”
发生在我的情况。
在DataGrid上添加MaxHeight和VerticalScrollBarVisibility =“Auto”解决了我的问题。
为列和行添加具有定义的高度和宽度的网格。 然后添加ScrollViewer,并在里面添加dataGrid。