Как динамически наложить слои поверх друг друга в Windows формах? - PullRequest
0 голосов
/ 16 апреля 2020

Я использую FlowLayoutPanel для динамического отображения массива PictureBoxes и Labels. Они идут в следующем порядке: PictureBox-Label-PictureBox-Label и так далее. Мне нужно, чтобы эти ярлыки появлялись над каждым изображением, чтобы они соответствовали друг другу, в основном, размещая их поверх полей в картинке. Я попытался использовать Controls.SetChildIndex(temp, 2);, но, похоже, просто поменял местами картинку. Я также попытался использовать temp.BringToFront();, но затем все графические блоки отображаются в верхней части панели, а все метки находятся ниже (мне нужно, чтобы каждая метка соответствовала каждой картинной коробке над ними). Вот код:

 public void RunMeta()
    {
        Label mostPickedLabel = new Label();
        mostPickedLabel.Text = "Most picked heroes";
        flowLayoutPanel1.Controls.Add(mostPickedLabel);
        mostPickedLabel.Margin = new Padding(15, 0, 1000, 0);
        mostPickedLabel.Font = new Font("Lucida Sans Unicode", 15);
        mostPickedLabel.ForeColor = Color.DarkCyan;
        mostPickedLabel.Size = new Size(200, 30);
        foreach (var mostPickedHero in FetchDataFromDota2Site.MostUsedHeroesAndImages)
        {
            PictureBox temp = new PictureBox();
            temp.ImageLocation = mostPickedHero.ImageSource;
            temp.SizeMode = PictureBoxSizeMode.StretchImage;
            temp.Left = temp.Width * flowLayoutPanel1.Controls.Count;
            temp.Margin = new Padding(15, 30, 15, 30);
            flowLayoutPanel1.Controls.Add(temp);
            flowLayoutPanel1.AutoScroll = true;
            Label heroName = new Label();
            heroName.Text = mostPickedHero.MostPickedHeroName;
            heroName.Font = new Font("Lucida Sans Unicode", 8);
            heroName.ForeColor = Color.White;
            flowLayoutPanel1.Controls.Add(heroName);
        }
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...