微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MonoGame Window.Handle 不返回 Window 或 Form

如何解决MonoGame Window.Handle 不返回 Window 或 Form

我已经尝试了一段时间来解决这个问题,但我还没有在网上看到关于这个主题的任何解决方案。

问题是在使用 MonoGame 和 Platform DesktopGL 时,Window.Handle 似乎无效。由于尝试从此句柄获取窗口/表单返回空值,因此进一步支持这将是 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 以及为什么此特定代码段不起作用的人。

解决方法

“Window.Handle”仅在 WindowsDX 平台上有效。

OpenGL,无论平台(包括Windows)都能满足这个要求。

如果您正在寻找跨平台解决方案,请寻找其他地方。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。