You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF调用Show()时游戏窗口显示空白且无法正常唤起的问题求助

WPF Kahoot风格问答游戏窗口空白及唤起异常问题

我正在开发一款Kahoot风格的问答游戏,客户端基于WPF框架(向遇到相同问题的Magshimim同学问好)。加载本应从服务器请求并显示问题的游戏窗口时,窗口呈现空白状态,无编译错误或运行时异常,且最小化后点击任务栏无法唤起窗口。

构造函数代码

public GameQuestionWindow(Communicator communicator, MenuWindow menu, int timePerQuestion, int questionsLeft, Window prevWindow)
{
    this.Show();
    InitializeComponent();
    prevWindow.Close();

    m_communicator = communicator;
    m_questionsLeft = questionsLeft;
    m_menuWindow = menu;

    m_mediaPlayer = new MediaPlayer();
    m_mediaPlayer.Open(new Uri("pack://application:,,,/Client;component/Audio/tick.mp3"));

    time = TimeSpan.FromSeconds(timePerQuestion);
    timer = new DispatcherTimer();

    gameLoop();
}

已尝试的解决方法

  • 将this.Show()放在InitializeComponent()之后执行,问题依旧
  • 使用ShowDialog(),但会导致后台游戏逻辑停滞、线程卡住,窗口仍为空白

窗口创建代码

if (serverResp.getCode() == 150)
{
    shouldStop = true;
    GameQuestionWindow window = new GameQuestionWindow(this.communicator, this.menuWindow, answerTimeout, answerAmount, this);
}

shouldStop用于后台刷新线程,与当前问题无关。由于所有游戏逻辑都在构造函数的主线程中执行,无法在构造函数返回后调用window.Show()——否则需等游戏结束才会执行,且调用窗口已被关闭。Visual Studio的XAML设计器中游戏窗口显示正常。

窗口截图

游戏前的窗口:
游戏前的窗口

空白的游戏窗口:
空白的游戏窗口

内容的提问来源于stack exchange,提问作者Ron Kan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:52:10