Ejemplo n.º 1
0
        private LinkLabel AddPicture(UrlDescription picture)
        {
            LinkLabel pictureLabel;

            if (picturesLinksLabels.Count > 0)
            {
                pictureLabel = ExampleImageLinkLabel.Clone();
            }
            else
            {
                pictureLabel = ExampleImageLinkLabel;
            }

            pictureLabel.Text    = picture.Description;
            pictureLabel.Visible = true;
            pictureLabel.Links.Clear();

            var link = new LinkLabel.Link(0, picture.Description.Length, picture.Url);

            link.Description = picture.Description;

            pictureLabel.Links.Add(link);
            pictureLabel.LinkClicked += PictureLinkLabel_LinkClicked;

            picturesLinksLabels.Add(pictureLabel);

            if (PicturesPanel.Controls.Contains(pictureLabel) == false)
            {
                PicturesPanel.Controls.Add(pictureLabel);
            }

            pictureLabel.BringToFront();

            return(pictureLabel);
        }
Ejemplo n.º 2
0
        private void GenerateQuestionsViewsControls()
        {
            decimal system = questions.Sum(question => question.Points); // максимальная оценка

            foreach (var question in questions)
            {
                var pictures     = new List <UrlDescription>();
                var optionsTexts = new List <string>();
                var questionText = HelpClass.HtmlToSmartPlainText(question.HtmlText);
                var points       = HelpClass.PointsToSystem(question.Points, system, 12);
                var options      = showOnlyAnswers ? question.Answers : question.Options;

                if (question.ImageUrl != null)
                {
                    var picture = new UrlDescription(question.ImageUrl, "Рис. вопроса");
                    pictures.Add(picture);
                }

                if (options != null)
                {
                    for (int i = 0; i < options.Count; i++)
                    {
                        var option     = options[i];
                        var optionText = HelpClass.HtmlToSmartPlainText(option.HtmlText);

                        if (option.ImageUrl != null)
                        {
                            var pictureBaseText    = showOnlyAnswers ? "Рис. ответа" : "Рис. варианта";
                            var pictureDescription = options.Count > 1 ? $"{pictureBaseText} {i + 1}" : pictureBaseText;
                            var picture            = new UrlDescription(option.ImageUrl, pictureDescription);
                            pictures.Add(picture);

                            if (string.IsNullOrWhiteSpace(optionText))
                            {
                                optionText = $"({pictureDescription})";
                            }
                        }

                        optionsTexts.Add(optionText);
                    }
                }

                var control = new QuestionView(questionText, Math.Round(points, 2), optionsTexts, pictures)
                {
                    OptionsAreAnswers = showOnlyAnswers,
                    Dock = DockStyle.Top
                };

                control.OnControlStateChanged += OnQuestionViewControlStateChanged;
                questionsViewControls.Add(control);

                QuestionsViewPanel.Controls.Add(control);
                control.BringToFront();
            }
        }