我有一个WPF应用程序,它使用手写控件 .
通过使用
<InkCanvas></InkCanvas>
在我的XAML中,我能够获得用户的笔画,并使用InkAnalysis类将它们转换为文本 . 但是,这严格是32位,我的要求是64位版本 .
由于无法找到64位兼容的库,我研究升级到.NET 4.5并使用桌面应用程序可用的Windows8类(通过将<TargetPlatformVersion> 8.1 </ TargetPlatformVersion>添加到csproj文件中,以便我可以添加' Windows的命名空间引用) . 幸运的是,Windows.UI.Input.Inking是 .
但是,当我添加对Windows.UI.Input.Inking的引用时,我得到一个构建错误,其中指出:
Unknown build error, 'Cannot resolve dependency to Windows Runtime type 'Windows.Foundation.Metadata.PlatformAttribute'. When using the ReflectionOnly APIs, dependent Windows Runtime assemblies must be resolved on demand through the ReflectionOnlyNamespaceResolve event.'
我调查了:
Windows.Foundation.Metadata.PlatformAttribute
它似乎想要一个枚举成员,或者:
Windows.Foundation.Metadata.Platform.Windows
要么
Windows.Foundation.Metadata.Platform.WindowsPhone
这是一个桌面应用程序,所以我显然会选择目标Platform.Windows,但无法弄清楚如何告诉编译器 .
如何将此Windows.UI.Input.Inking类合并到我的WPF应用程序中?我的最终目标是在64位环境中将笔画从墨迹转换为文本 .
1 回答
我发现由于引用添加到以下内容我收到此错误:
Windows.UI.Input.Inking
图书馆 . 似乎添加对Windows 8 / 8.1 WinAPI组件(来自非WinAPI应用程序)的引用的正确方法如下:
将
<TargetPlatformVersion>8.1</TargetPlatformVersion>
添加到csproj文件中添加对
Windows
库的引用(这是关键 - 添加特定的lib,在本例中为Windows.UI.Input.Inking
,导致构建错误)在需要API的实际文件中添加更具体的(例如:
Windows.UI.Input.Inking
)引用我正在创建一个NuGet包,它将编辑csproj文件,并添加
Windows
引用 . 如果/何时完成,我会更新 .