WinForms - Как мне наложить изображение определенного размера с прозрачностью на другое изображение другого размера? - PullRequest
0 голосов
/ 05 мая 2019

Я новичок в C # и разрабатываю программу, которая вычисляет, насколько большой астрономический объект будет появляться через разные телескопы и окуляры. Мой код делает все, что мне нужно, и у меня есть значение для поля зрения (FOV) и размер объекта. У меня есть изображения объектов и PNG черного круга. Черный круг должен оставаться одинакового размера, а объект должен менять размер в зависимости от поля зрения. Мне нужно иметь черный кружок над изображением объекта и иметь возможность изменять размер объекта независимо от круга.

Я пробовал иметь два графических блока с черным кружком сверху, но Windows Forms не поддерживает прозрачность в PNG, поэтому изображение объекта не отображается. Единственный способ найти прозрачность для работы - это использовать один графический блок с объектом в качестве фона и черный круг в качестве изображения или использовать изображение в качестве родителя, но тогда я не могу изменить размер объекта независимо.

//setting the image box as a parent of the black circle box
            astroObjectBox.Controls.Add(fovBox);
            fovBox.Location = new Point(0, 0);
            fovBox.BackColor = Color.Transparent;


private void formResultFOV_Load(object sender, EventArgs e)
        {
            Image astroObject = Image.FromFile(objPath);
            int imgWidth = Convert.ToInt32(mainFOV * astroObject.Width); 
            int imgHeight = Convert.ToInt32(mainFOV * astroObject.Height);
            astroObjectBox.Image = astroObject;
            astroObjectBox.Width = imgWidth;
            astroObjectBox.Height = imgHeight;
            fovBox.Image = Image.FromFile("..\\..\\..\\assets\\FOVoutline.png");
        }

Вот черный круг

https://i.imgur.com/rIYz6LB.png

И вот результат при использовании изображения в качестве родителя, оно изменяет размер черного круга до высоты объекта

https://i.imgur.com/MyFXPoG.png

Есть ли способ сделать это так, чтобы либо ящики с изображениями были прозрачными, либо чтобы я мог независимо выбирать размеры изображений? Я также попробовал почти все комбинации свойств (SizeMode, Anchor, Dock).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...