Bunun için bulduğum en iyi çözüm, etkin olmadığında girişe yanıt vermemeyi (ve muhtemelen oyununuzu da duraklatmayı) sağlamaktır.
Ve olaylarını kontrol edebilir Game.IsActive
veya bağlayabilirsiniz .Activated
Deactivated
Küçük bir dezavantajı var - bunu sadece çerçeve içinde bir hata olarak düşünürdüm - oyun her zaman Aktif durumda başlar, oyun çalışmaya başladığında aslında aktif olmasa bile. (Örneğin: oyununuzu başlatmak ve oyununuzu başlatmak arasında başka bir pencereye tıklarsınız.)
Oyununuz başladığında aktif pencerenin ne olduğunu kontrol ederek, muhtemelen kullanarak bu sorunu çözebilirsiniz GetForegroundWindow
. Ya da bunun için endişelenemezsiniz - bazen bir geliştirici olarak gerçekleşir, ancak son kullanıcıları gerçekten etkilemediğinden şüpheleniyorum.