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
相关产品推荐
相关产品推荐

