public ShowAnswerControl(Question question)
        {
            InitializeComponent();

            this.question          = question;
            QuestionImage.Source   = question.questionImage;
            QuestionTextBlock.Text = question.question;
            if (question.question.Length == 0)
            {
                QuestionTextBlock.Visibility = System.Windows.Visibility.Collapsed;
            }
            else
            {
            }
            if (question.questionImage == null)
            {
                QuestionImage.Visibility = System.Windows.Visibility.Collapsed;
            }
            else
            {
            }

            setAnswers(question);

            if (question.timed)
            {
                TimerProgressBar.Visibility = Visibility.Hidden;
            }
            else
            {
                TimerProgressBar.Visibility = Visibility.Collapsed;
            }

            if (question.usingCustomPoints)
            {
                PointsTextBlock.Text  = "+" + question.customPoints;
                PointsGrid.Visibility = System.Windows.Visibility.Visible;
            }
            else
            {
                if (Settings.AlwaysShowPoints)
                {
                    PointsTextBlock.Text  = "+" + Settings.RightPoints;
                    PointsGrid.Visibility = System.Windows.Visibility.Visible;
                }
                else
                {
                }
            }
            if (question.usingCustomPenalty)
            {
                if (question.customPenalty > 0)
                {
                    PenaltyTextBlock.Text = "+" + question.customPenalty;
                }
                else
                {
                    PenaltyTextBlock.Text = "" + question.customPenalty;
                }
                PenaltyGrid.Visibility = System.Windows.Visibility.Visible;
            }
            else
            {
                if (Settings.AlwaysShowPenalties)
                {
                    if (Settings.WrongPoints > 0)
                    {
                        PenaltyTextBlock.Text = "+" + Settings.WrongPoints;
                    }
                    else
                    {
                        PenaltyTextBlock.Text = "" + Settings.WrongPoints;
                    }
                    PenaltyGrid.Visibility = System.Windows.Visibility.Visible;
                }
                else
                {
                }
            }

            if (Settings.ShowAnswers)
            {
                AnswerABox.showAnswers();
                AnswerBBox.showAnswers();
                AnswerXBox.showAnswers();
                AnswerYBox.showAnswers();
                AnswerLBox.showAnswers();
                AnswerRBox.showAnswers();
            }
            else
            {
            }

            int topScore = int.MinValue;

            for (int index = 0; index < 5; index++)
            {
                PlayerControl playerControl = MainWindow.getInstance().GetPlayerControl(index);
                if (playerControl.inGame)
                {
                    if (playerControl.getLastAnswerResult() == PlayerControl.AnswerResult.correct)
                    {
                        if (question.usingCustomPoints)
                        {
                            playerControl.addScore(question.customPoints, true);
                        }
                        else
                        {
                            playerControl.addScore(Settings.RightPoints, true);
                        }
                    }
                    else if (playerControl.getLastAnswerResult() == PlayerControl.AnswerResult.wrong)
                    {
                        if (question.usingCustomPenalty)
                        {
                            playerControl.addScore(question.customPenalty, false);
                        }
                        else
                        {
                            if (Settings.WrongDeduct)
                            {
                                playerControl.addScore(Settings.WrongPoints, false);
                            }
                            else
                            {
                            }
                        }
                    }
                    else
                    {
                    }
                    playerControl.revealAnswer();
                    if (Settings.ShowAnswers)
                    {
                        switch (playerControl.lastAnswer)
                        {
                        case AnswerBox.Answer.None:
                            break;

                        case AnswerBox.Answer.A:
                            AnswerABox.setAnswered(index);
                            break;

                        case AnswerBox.Answer.B:
                            AnswerBBox.setAnswered(index);
                            break;

                        case AnswerBox.Answer.X:
                            AnswerXBox.setAnswered(index);
                            break;

                        case AnswerBox.Answer.Y:
                            AnswerYBox.setAnswered(index);
                            break;

                        case AnswerBox.Answer.L:
                            AnswerLBox.setAnswered(index);
                            break;

                        case AnswerBox.Answer.R:
                            AnswerRBox.setAnswered(index);
                            break;
                        }
                    }
                    else
                    {
                    }
                    if (playerControl.score > topScore)
                    {
                        topScore = playerControl.score;
                    }
                    else
                    {
                    }
                    playerControl.AnimatePointsStoryboard.Begin();
                }
                else
                {
                }
            }
            for (int index = 0; index < 5; index++)
            {
                PlayerControl playerControl = MainWindow.getInstance().GetPlayerControl(index);
                if (playerControl.score == topScore)
                {
                    playerControl.showSilverCrown();
                }
                else
                {
                    playerControl.hideCrown();
                }
            }

            playersReady = false;

            App.getInstance().xKeyboard.OnSpacePressed += () => finish();

            setScale(MainWindow.getInstance().getXScale(), MainWindow.getInstance().getYScale());

            IsComplete = false;
        }