我一直嘗試使用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/ –