如何从 WPF 访问 Windows.Devices.Scanners
Posted
技术标签:
【中文标题】如何从 WPF 访问 Windows.Devices.Scanners【英文标题】:How to access Windows.Devices.Scanners from WPF 【发布时间】:2015-10-23 03:54:21 【问题描述】:我需要在我的 WPF 应用程序中从扫描仪获取图像。我使用了开源 TwainDotNet Twain32 包装器,但是,有些 Windows 8.1 设备会抛出 AccessViolationException。我想在 Windows.Devices.Scanners 命名空间中使用 Microsoft 支持的最新 WIA 包装器,而不是购买产品以在 Windows 8.1+ 机器上启用扫描。
通过以下说明,我已经成功地能够在 WPF 应用程序中使用某些 Windows.Devices.* 类型进行视频录制:How to use specific WinRT API from Desktop apps: capturing a photo using your webcam into a WPF app
当您查看 Windows.Devices.Scanners ImageScanner class 的文档时,您可以看到支持的最低客户端是 Windows 8.1 [Windows 应用商店应用程序,桌面应用程序]。由于它适用于 Windows 应用商店应用程序和桌面应用程序,这意味着您应该能够在 WPF 中使用此命名空间和关联的类。元数据被列为 Windows.winmd,我相信它已经在上面的教程中概述的项目中引用(对 Windows 的引用)。
我的问题:如何在 Windows 8.x+ 上运行的 WPF 应用程序中使用 Windows.Devices.Scanners 类型?
提前感谢所有回复
【问题讨论】:
【参考方案1】:文档指出支持的最低客户端是 Windows 8.1。您使用的教程告诉您编辑 CSPROJ 文件以添加以下代码:
<TargetPlatformVersion>8.0</TargetPlatformVersion>
将此更改为 8.1 以引用仅 8.1 的类型:
<TargetPlatformVersion>8.1</TargetPlatformVersion>
【讨论】:
以上是关于如何从 WPF 访问 Windows.Devices.Scanners的主要内容,如果未能解决你的问题,请参考以下文章
如何从我自己的 .cs 文件访问 WPF MainWindow 控件
从 NAudio 访问 WPF MediaElement 声音流