我有一个由DataTable填充的DataGrid。问题是DataTable有12列,但只有9列会显示在DataGrid中,因为它们都适合页面。
任何人都知道如何包装DataGrid,以便其他列显示在页面的下方?或者我如何解决这个问题的任何其他想法?
由于
答案 0 :(得分:0)
我认为没有办法包装数据网格对象,而是可以将DataGrid放在ScrollViewer中并启用HorizontalScroll。
ScrollViewer类http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer%28v=vs.110%29.aspx
答案 1 :(得分:0)
不确定如何轻松包装。我想你必须通过监控控件的宽度来管理显示哪些列(更不用说有多个数据表)。呸!我建议您将DataGrid
插入ScrollViewer
内部。这将与许多其他用户界面保持一致,从而使您的应用程序更容易被理解。
只需确保将HorizontalScrollBarVisibility
属性设置为Auto
或Visible
请参阅下面的XAML:
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<DataGrid AutoGenerateColumns="False" Name="dataGrid1">
<DataGrid.Columns>
<DataGridTextColumn Header="Column 1" />
<DataGridTextColumn Header="Column 2" />
<DataGridTextColumn Header="Column 3" />
<DataGridTextColumn Header="Column 4" />
<DataGridTextColumn Header="Column 5" />
<DataGridTextColumn Header="Column 6" />
<DataGridTextColumn Header="Column 7" />
<DataGridTextColumn Header="Column 8" />
<DataGridTextColumn Header="Column 9" />
<DataGridTextColumn Header="Column 10" />
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
这会在下面创建DataGrid
:
修改强>
由于您需要打印DataGrid
,我会发布一个关于如何打印它的代码段。这将打印整个DataGrid
;但是,如果您的DataGrid
确实太大,那么您可能需要查看修改输出图像。
PrintDialog dialog = new PrintDialog();
if (dialog.ShowDialog() == true)
{
dialog.PrintVisual(dataGrid1, "The Entire DataGrid");
}
您可以在命名空间中找到PrintDialog
:System.Windows.Controls
PrintDialog.PrintVisual
函数可用于打印WPF控件,只需将控件作为第一个参数传递。