目前我为用户提供两个控件:保存和打印。当用户选择“保存”时,WPF 显示的一个区域将被打包并通过 XpsDocumentWriter 发送,并且提示并鼓励用户签署新的 xps 文档。当用户选择“打印”时,PrintDialog.PrintVisual 会将同一区域打印到用户选择的打印机。
一切都很好,只是 Microsoft XPS Document Writer 是打印机的选择之一。有没有办法阻止或拦截用户对 XPS 文档编写器的选择并将其发送到 Save 方法,以便我可以提示用户签署 XPS 文档?
免责声明: 我没用过PrintDialog
之前,但看起来像这样可能有效:
System.Windows.Controls.PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == true)
{
PrintQueue selectedQueue = printDialog.PrintQueue;
if (selectedQueue.Name == "Microsoft XPS Document Writer")
{
// Run your XPS save & sign code
}
else
{
// Run your printDialog.PrintVisual() code
}
}
我真的不喜欢对打印机名称进行硬编码(我认为它随语言设置而变化)。可能有更好的属性PrintQueue http://msdn.microsoft.com/en-us/library/system.printing.printqueue.aspx您可以用它来识别这台打印机。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)