我一直尝试使用monogame和c#实现事件。目前,当调整我的窗口,我调用事件:MonoGame最大化窗口事件
this.Window.ClientSizeChanged += new EventHandler<EventArgs>(Window_ClientSizeChanged);
void Window_ClientSizeChanged(object sender, EventArgs e)
{
int width = Window.ClientBounds.Width;
int height = Window.ClientBounds.Height;
if (width > 0 && height > 0)
{
graphics.PreferredBackBufferWidth = width;
graphics.PreferredBackBufferHeight = height;
graphics.ApplyChanges();
}
}
这是所有罚款和正确调整大小我的窗口,更新宽度/高度。但是,如果通过用户单击窗口框架上的最大化/最小化按钮调整窗口大小,则不会触发它。
花一些时间寻找到的一些解决方案的唯一的建议,以实现最大化的事件后,从here:
Form form = (Form)Control.FromHandle(Window.Handle);
form.WindowState = FormWindowState.Maximized;
然而,这是一个解决方案我不是特别喜欢,因为它依赖于包含系统.Windows.Forms,因为我可能有一天想建立其他平台的ID,而不是包括任何特定的Windows库。
是否有任何monogame功能可以处理每个平台的最大化/最小化事件调用,还是由最终用户来实现此类功能?
Windows窗体通过单声道支持多个平台,具体取决于您要支持的平台,这甚至不是问题http://www.mono-project.com/docs/gui/winforms/ –