c# - MonoGame Window.Handle 不返回 Window 或 Form
问题描述
我已经尝试了一段时间来解决这个问题,但我还没有在网上看到任何关于这个主题的解决方案。
问题是在使用 MonoGame 和 Platform DesktopGL 时,Window.Handle 似乎无效。由于尝试从此句柄获取窗口/窗体返回 null,进一步支持这一点的是 BASS.Net 无法在此窗口句柄上播放音频,
这是我尝试使用句柄的部分代码(使用 Bass.Net 进行音频播放):
protected override void Initialize() {
Game = this;
//Getting the Form from Window Handle
Form = (Form)Control.FromHandle(Game.Window.Handle);
//Initializing Bass with Window Handle
Bass.BASS_Init(-1, 4100, BASSInit.BASS_DEVICE_DEFAULT, Game.Window.Handle, null);
base.Initlialize()
}
我试图在网上到处查看,1 个消息来源指出 MonoGame 平台 WindowsDX 显然返回了一个有效的表单,尽管从我注意到的从未版本的 MonoGame 中,这个平台似乎不再受支持,而且我很想拥有这个项目是跨平台的,所以即使它存在/工作,坚持使用 WindowsDX 也不是我认为的一个好的解决方案。
在此先感谢任何设法找到 MonoGame 为什么不返回窗口以及为什么这段特定代码不起作用的人。
解决方案
“Window.Handle”仅在 WindowsDX 平台上有效。
OpenGL,不管是什么平台(包括Windows),都可以满足这个要求。
如果您正在寻找跨平台解决方案,请寻找其他地方。
推荐阅读
- c - snprintf/sprintf 是否会覆盖倒数第二个参数的终止空值,就像 strcat 一样?
- python - pip 无法在 conda 虚拟环境中安装模块
- google-cast - Chrome 浏览器 Cast 扩展取代了 Cactool Cast 按钮
- google-cloud-platform - GCP AI平台API
- microsoft-graph-api - 存储来自 jsr223 响应的变量以在后续测试中使用
- javascript - YouTube 查询功能不适用于我的 js bot 不和谐
- ruby-on-rails - 如何在 ruby on rails 的活动记录关联的控制器中添加另一个模型的 id
- powershell - PowerShell 365 - Remove-UnifiedGroupLinks 转换值错误
- c - c 你什么时候不想使用严格的别名?
- nuget - nuget 在正文而不是内容中返回带有 nuget-feed 的 index.json 的包