C# 不打开应用程序时关闭鼠标交互

C# 不打开应用程序时关闭鼠标交互,c#,xna,window,mouse,contains,C#,Xna,Window,Mouse,Contains,假设我运行了我的C#程序,屏幕上有一个按钮,如果我把鼠标放在上面,它会将游戏切换到一个新页面。现在我在项目前面放了另一个窗口,比如谷歌浏览器,我正在搜索网页并点击东西,因为我现在正在运行的项目仍然与鼠标交互,即使我看不到按钮,也可以按下按钮。如何关闭此交互?通过在游戏类(默认情况下称为Game1)的实现中使用IsActive,可以避免在游戏未聚焦时接收输入 protected override void Update(GameTime gameTime) { base.Update(ga

假设我运行了我的C#程序,屏幕上有一个按钮,如果我把鼠标放在上面,它会将游戏切换到一个新页面。现在我在项目前面放了另一个窗口,比如谷歌浏览器,我正在搜索网页并点击东西,因为我现在正在运行的项目仍然与鼠标交互,即使我看不到按钮,也可以按下按钮。如何关闭此交互?

通过在游戏类(默认情况下称为Game1)的实现中使用IsActive,可以避免在游戏未聚焦时接收输入

protected override void Update(GameTime gameTime)
{
    base.Update(gameTime);

    if (!IsActive)
    {
        return;
    }

    // ... do regualr update.
}


或者,如果您已经有一些游戏状态管理系统,您可以覆盖游戏中的OnDeactived方法。当游戏失去焦点时,将调用此函数

protected override void OnDeactivated(object sender, EventArgs args)
{
    base.OnDeactivated(sender, args);

    // If we are in a state which it makes sense to pause the game, then do it now.
    if (GameObjectManager.pInstance.pCurUpdatePass == BehaviourDefinition.Passes.GAME_PLAY)
    {
        GameObjectManager.pInstance.pCurUpdatePass = BehaviourDefinition.Passes.GAME_PLAY_PAUSED;
    }
}

您的标题和问题很难阅读,也不清楚。如果你希望得到答案,你应该重新措辞,使其更易于理解。@PatrickQuirk我更新了这个问题,希望能帮助人们理解这个问题,这是一个很难命名的话题,很抱歉,没有沟通。可能是复制品?@cloyd800我想这是。我想知道Game.IsActive是如何被整合到程序中的。我尝试在主类的update方法中使用它,但出现了一个错误。IsActive没有出现。