【问题标题】:How Do I Access Windows.Gaming.Input in a Non-UWP C# Project?如何在非 UWP C# 项目中访问 Windows.Gaming.Input?
【发布时间】:2020-04-30 17:02:01
【问题描述】:

我已经看到了一些在 C++ 控制台应用程序中使用 Windows.Gaming.Input 的示例,但是否也可以在非 UWP C# 项目中访问它?

谢谢,

【问题讨论】:

  • 您的标题和问题的正文不一致。
  • @mason 你是什么意思?
  • 您的标题显示“非 UWP”,而您的问题正文显示“使用 UWP”。是哪个?
  • 对不起,我的意思是没有 UWP。
  • 请编辑您的问题以适当反映您的意图。

标签: c# windows input uwp


【解决方案1】:

我通过以下方式设法做到了这一点:

  1. 确保 VisualStudio 没有运行。
  2. 在文本编辑器中打开您的项目*.csproj 文件,例如记事本。
  3. <TargetPlatformVersion>10.0</TargetPlatformVersion> 添加到*.csproj 文件中。您可以将其放在 <TargetFrameworkVersion/> 条目之后。
  4. 在 Visual Studio 中打开您的项目。
  5. 在 nuget 中添加 System.Runtime.WindowsRuntime 引用(我使用的是 v4.7.0,当时是最新的稳定版本),或手动浏览系统上的 DLL 文件。
  6. 在解决方案/项目资源管理器中,右键单击引用 -> 添加引用...
  7. 您现在应该可以在侧面看到“通用 Windows”选项。
  8. 添加 Windows.Gaming 引用。
  9. 在您的*.cs 文件中,您需要使用using Windows.Gaming.Input; 的引用。如果找不到引用,请尝试将其包含在命名空间之外。或者你也可以试试using global::Windows.Gaming.Input;

【讨论】:

  • 工作完美,感谢您的提示,在 Visual Studio 2015 上工作。
  • 要使用游戏手柄,您还需要添加 System.Runtime.InteropServices.WindowsRuntime 否则将无法订阅和取消订阅事件。
【解决方案2】:

但是有没有办法在 C# 中使用 UWP 访问它?

当然,您可以在 UWP 平台内使用 C# 访问 Windows.Gaming.Input。例如,

var controllers = RawGameController.RawGameControllers;
 foreach (var item in controllers)
 {
    var name =  item.DisplayName;
 }

很遗憾,没有可以参考的 c# 项目,如果您确实想要 c# 项目,请随时使用 Windows Feed Backhub 应用发布您的需求。

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 2022-12-09
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    相关资源
    最近更新 更多