【问题标题】:How to choose printer in Metro-style app如何在 Metro 风格的应用程序中选择打印机
【发布时间】:2012-09-16 13:05:47
【问题描述】:

我正在尝试将现有的桌面应用程序转换为 metro 风格的应用程序(Win8 和 VS12)。 但我很难处理打印。

我的软件有两个用户——“管理员”和“用户”。 我希望“管理员”能够选择打印机和打印机设置, 并且“用户”需要按下“打印”按钮,就是这样。

问题是:

  1. 我找不到如何获取所有已连接的打印机。 (DeviceInformation.FindAllAsync() 需要 DeviceClass,它只有这些选项 - All, AudioCapture, AudioRender, PortableStorageDevice, VideoCapture)。 [在我的原始应用程序 (WPF) 中,我使用的是 PrinterSettings.InstalledPrinters]

  2. 我找不到打印到选定打印机的方法(即使我已经知道名称)。 因为(据我了解),打印的唯一方法是打开(使用代码或注册)“魅力”栏,让用户选择打印机。 如果我不希望用户使用指定的打印机怎么办?

  3. 有没有办法引用一个“普通”C# dll 来为 Metro 风格的应用程序做“脏东西”?当我尝试时,我得到“无法添加对项目'Try1'的引用”。有没有办法绕过它?

非常感谢您!

【问题讨论】:

    标签: c# printing microsoft-metro windows-runtime


    【解决方案1】:

    Windows 应用商店应用中的打印现在是handled by a task。您不必完成查找打印机和让用户选择打印机的所有工作,现在由 Windows 处理。

    【讨论】:

    • 但事实并非如此。我想选择一台特定的打印机。并且不让用户这样做。
    • 对。我要告诉你,这不是它在 Windows 应用商店应用程序中的工作方式。微软希望为 Windows 8 用户提供统一的体验,一切都按照预期的方式运行(例如,他们点击打印按钮,然后他们可以选择打印机),没有办法规避这一点。
    • 1.所以你是说不可能做像this 这样的事情? 2.我的第三个问题呢?
    • 1.是的。该示例中使用的 API 不适用于 Windows 应用商店应用。 2. 基本相同; Windows 应用商店应用无法引用常规 .NET 程序集。
    • 感谢您澄清这一点。我会接受你的回答(带着悲伤)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多