即使连接了控制器,UWP Gamepad.Gamepads 也是空的
Posted
技术标签:
【中文标题】即使连接了控制器,UWP Gamepad.Gamepads 也是空的【英文标题】:UWP Gamepad.Gamepads is empty even though a controller is connected 【发布时间】:2018-02-26 21:17:25 【问题描述】:我目前正在开发一个 UWP 应用程序,我希望能够从无线 xbox 控制器获取输入,但是,每当我尝试在我的代码中访问它时,我都会收到错误 System.InvalidOperationException: 'Sequence contains no elements'
。
我知道控制器已连接,因为它显示在我的蓝牙设备中,我可以在 Steam Big Picture 和游戏中毫无问题地使用它。我正在尝试使用此代码访问控制器:
var controller = Gamepad.Gamepads.First();
var reading = controller.GetCurrentReading();
我是否遗漏了什么或做错了什么?
【问题讨论】:
【参考方案1】:我希望能够从无线 xbox 控制器获取输入,但是,每当我尝试在代码中访问它时,都会收到错误 System.InvalidOperationException: 'Sequence contains no elements'。
来自official document:
游戏手柄列表最初是空的,即使游戏手柄已经连接,也不会列出游戏手柄。稍后,这将返回完整的游戏手柄列表。
对于这种情况,您可以通过Gamepad.GamepadAdded
事件列出所有连接的游戏手柄。
public MainPage()
this.InitializeComponent();
Gamepad.GamepadAdded += Gamepad_GamepadAdded;
private void Gamepad_GamepadAdded(object sender, Gamepad e)
var controller = Gamepad.Gamepads?.First();
var reading = controller.GetCurrentReading();
【讨论】:
我想从文档中添加更多信息:游戏手柄支持任何经过 Xbox One 认证或与 Xbox 360 兼容的游戏手柄。以上是关于即使连接了控制器,UWP Gamepad.Gamepads 也是空的的主要内容,如果未能解决你的问题,请参考以下文章
UWP Xaml文本块数据绑定 - 即使属性已更新,UI也不会更新