Коробка с изображением В поле с изображением

Это касается кодирования на С#, я совершенно новичок в этом языке программирования и мало знаю ни о каком другом, но я хотел бы добиться того, чтобы иметь окно с изображением в качестве фона и иметь другое окно с изображением поверх притирка, но прозрачная часть должна показывать коробку с изображением позади. У меня была прозрачная коробка с изображением, но дело в том, что она показывает только задний цвет формы, а не окно с изображением позади нее. Может кто-нибудь помочь с этим?

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

Заранее спасибо.


person user1391293    schedule 12.05.2012    source источник
comment
Вместо того, чтобы использовать два изображения, вы можете создать собственный элемент управления и переопределить метод рисования, чтобы вы могли рисовать два изображения самостоятельно с большим количеством опций и меньшими сложностями.   -  person caesay    schedule 12.05.2012
comment
возможный дубликат полупрозрачный PNG Winforms вместо полупрозрачного PNG   -  person Hans Passant    schedule 13.05.2012


Ответы (2)


Перейдите в Проект -> Добавить пользовательский элемент управления. Дайте этому пользователю элемент управления BackGroundImage. Перетащите изображение на пользовательский элемент управления. Сделайте фоновый цвет PictureBox прозрачным. Создайте проект.

В конструкторе вы должны иметь возможность перетаскивать новый пользовательский элемент управления на форму. Это сделает то, что вы хотите.

person theUser    schedule 12.05.2012
comment
хорошо, я не знаю, правильно ли я интерпретирую ваше решение, но вы хотите, чтобы я сделал изображение поля изображения, которое находится сверху, в качестве фона, и установил изображение поля изображения, которое находится на снизу как изображение? Потому что это не работает для меня. - person user1391293; 12.05.2012
comment
Хм, кажется, что прозрачная часть показывает только фон формы, а не фон другого изображения. - person user1391293; 12.05.2012
comment
что вы имеете в виду, добавляя его? - person user1391293; 12.05.2012
comment
Можете ли вы привести пример? скажем, picturebox1 сверху, а picturebox2 снизу: $ извините за беспокойство ›.‹ - person user1391293; 12.05.2012
comment
как перетащить новый пользовательский элемент управления? :$ - person user1391293; 13.05.2012
comment
Инструменты › Параметры › Конструктор Windows Forms › Общие : AutoToolboxPopulate --› True. Созданный вами UserControl должен появиться на панели инструментов при просмотре формы в режиме конструктора. Убедитесь, что вы создали свое решение --› 'F6' - person theUser; 13.05.2012

для фона вы можете использовать Graphics. визуально создайте событие рисования для вашей формы:

private void Form1_Paint(object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics;
    g.DrawImage(Image.FromFile("address of image"), 0, 0, this.Width, this.Height);
}

он будет окрашивать форму, и вам не нужно изображение для фона.

person Feri73    schedule 12.05.2012
comment
Да, я знаю об этом, но это не то, чего я пытался достичь, так как мне нужны два взаимодействующих графических окна, и у меня уже есть фон для формы. - person user1391293; 12.05.2012