J'ai eu des difficultés à essayer d'implémenter un événement en utilisant monogame et C#. À l'heure actuelle quand ma fenêtre est redimensionnée j'appelle un événement:MonoGame Agrandir l'événement de la fenêtre
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();
}
}
Tout cela est bien et redimensionne correctement ma fenêtre et met à jour la largeur/hauteur. Toutefois, il n'est pas déclenché dans le cas où ma fenêtre est redimensionnée via un utilisateur en cliquant sur le bouton Agrandir/Réduire sur le cadre de la fenêtre.
Après avoir passé quelque temps à la recherche dans des solutions la seule suggestion de mettre en œuvre un événement Maximize était de here:
Form form = (Form)Control.FromHandle(Window.Handle);
form.WindowState = FormWindowState.Maximized;
Cependant ceci est une im solution ne raffole pas car il repose sur l'inclusion de système .Windows.Forms et puisque je peux un jour vouloir construire pour d'autres plates-formes plutôt que d'inclure des bibliothèques Windows spécifiques.
Existe-t-il une fonctionnalité monogame qui gère les appels d'événement maximiser/minimiser pour chaque plateforme ou est-ce à l'utilisateur final d'implémenter une telle fonctionnalité?
Windows Forms est pris en charge sur plusieurs plates-formes via Mono, en fonction de la plate-forme que vous souhaitez prendre en charge, cela ne constitue même pas un problème http://www.mono-project.com/docs/gui/winforms/ –