包含WinAPI(Win8)组件的WPF应用程序

我有一个使用手写控制的WPF应用程序。

通过使用一个

<InkCanvas></InkCanvas> 

在我的XAML中,我能够获得用户的笔画,并使用InkAnalysis类将其转换为文本。 但是,这是严格的32位,我的要求决定了一个64位版本。

无法find一个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 

这是一个桌面应用程序,所以我显然会selectPlatform.Windows的目标,但不知道如何告诉编译器。

我怎样才能将这个Windows.UI.Input.Inking类到我的WPF应用程序? 我的最终目标是在64位环境中简单地将笔划从inkcanvas转换为文本。

Solutions Collecting From Web of "包含WinAPI(Win8)组件的WPF应用程序"

我发现我收到这个错误,因为引用添加到:

Windows.UI.Input.Inking

图书馆。 看来,添加对Windows 8 / 8.1 WinAPI组件(来自非WinAPI应用程序)的引用的正确方法如下:

  1. <TargetPlatformVersion>8.1</TargetPlatformVersion>到csproj文件
  2. 添加引用到Windows库(这是关键 – 添加特定的lib,在这种情况下, Windows.UI.Input.Inking ,导致构建错误)
  3. 在需要API的实际文件中添加更具体的(例如: Windows.UI.Input.Inking )引用

我正在创建一个NuGet包,它将编辑csproj文件,并添加Windows引用。 如果/完成,我会更新它。