【问题标题】:WPF toolkit datagridWPF 工具包数据网格
【发布时间】:2009-03-03 19:08:11
【问题描述】:

我想在 XPS 文档中显示数据网格内容(行、列)。我有 20 列。当我使用 XPSDocumentWriter.Write 方法将 datagrid 发送到 XPS 时,它只显示了一些列而不是全部。如何在 xps 中显示所有列和行(如 Xceed datagrid xps 导出)

谢谢

【问题讨论】:

  • 你得到什么样的结果?总共有多少列?每页显示多少?你能生成一小组代码来重现这个效果吗?
  • 乔尔,在 XPS 文件中,我的数据网格显示了一半。但我想要我所有的列和行(例如:我有 20 列,但 xps 显示其中的 10 个)。跨度>

标签: .net wpf database wpftoolkit


【解决方案1】:

问题可能在于您的网格宽度与 XPSDocumentWriter 的页面大小相关。

WPF 将按原样在文档中写入您提供的元素。这意味着它不会以任何方式缩放以适应页面内容。

假设您的文档大小正确(假设为字母),您需要确定文档的可打印区域并在将其写入 XPSDocumentWriter 之前将 RenderTransform 应用于网格

执行此操作的代码类似于:

Grid grd = new Grid();
XpsDocumentWriter wrt = new XpsDocumentWriter();
//Bunch of code to manipulate your grid here

//Now we calculate the scaling required:
double ScaleX = PageWidth / grd.Width; //The page width must be in Device Independent Units
double ScaleY = ScaleX;

grd.RenderTransform = new ScaleTransform(ScaleX, ScaleY);

wrt.Write(grd);

编辑:更改了代码,使 ScaleX 和 ScaleY 都指向使网格完全适合 XpsDocument 所需的量

【讨论】:

  • 感谢您的解决方案 Kiranu :)
猜你喜欢
  • 1970-01-01
  • 2010-12-19
  • 2010-12-13
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 2011-06-15
  • 2010-12-06
  • 1970-01-01
相关资源
最近更新 更多