Silverlight 4打印:获取空白页面

时间:2010-10-21 13:58:42

标签: silverlight printing datagrid silverlight-4.0

尝试在SL4中实现简单打印。我有一个我想要打印出来的DataGrid,但到目前为止,我尝试打印的内容都是打印机中的空白页。实际打印似乎需要大约30-60秒(但这可能是一个无关的问题)。

我的代码相当简单:

private void MenuPrint_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            PrintDocument document = new PrintDocument();
            document.PrintPage += (s, args) =>
                {
                    args.PageVisual = this.MainDataGrid;
                    // args.PageVisual = this.LayoutRoot;
                };

            // Print
            document.Print("Test Print Job");
        }

我甚至想知道是不是因为物品太大了?

MainDataGrid控件的XAML也很简单:

<sdk:DataGrid Grid.Row="3" AutoGenerateColumns="True" Name="MainDataGrid" FontSize="10" Visibility="Visible" />

3 个答案:

答案 0 :(得分:0)

我可以在您的示例和MSDN之间看到的唯一区别是您正在为PrintPage事件处理程序使用匿名方法。您是否尝试处理EndPrint事件以检查错误?

答案 1 :(得分:0)

事实证明,这与PC有关,而不是代码问题。无论出于何种原因,相同的代码今天开始工作(在机器重启后)。

还有一个问题是Silverlight界面在打印过程中确实会挂起大约30-60秒,但它最终会释放并打印./

答案 2 :(得分:0)

在某些打印机上发送大量数据时Silverlight 4打印存在问题,我还没有看到对此问题的一个很好的解释,但这里有一些链接可以解决这个问题。

http://forums.silverlight.net/t/219707.aspx/1?Silverlight+4+batch+printing+print+blank+pages+in+xp+Windows+2003+server+

http://forums.silverlight.net/t/206048.aspx/1?PrintDocument+sends+extreme+amounts+of+data+to+printer