2017-02-05 28 views
1

Я хочу pbGrade быть на вершине pbItemtype (рь = изображение коробки)C# PictureBox поверх другого PictureBox

pbItemtype.BackColor = Color.Transparent; 

// Change parent for overlay PictureBox... 
pbItemtype.Parent = pbGrade; 

Я уже попытался это, но тогда pbItemtype даже не появляется, также 2 картины коробки изменить изображения (pbItemtype и pbGrade)

enter image description here

+0

Вы не можете легко сделать это. – SLaks

+0

хорошо знаю, что много: P –

ответ

1

Ну на самом деле вы можете сделать это легко и на самом деле вы уже сделали.

Код работает но вам также нужно исправить Location как вложенной PB будет держать его предыдущий и, таким образом, вероятно, будет выключен в нижнем правом углу, вероятно, оставляя видимый размер нового Parent .... :

pbItemtype.BackColor = Color.Transparent; 

// Change parent for overlay PictureBox... 
pbItemtype.Parent = pbGrade; 
// Move it to the top left of the parent: 
pbItemtype.Location = Point.Empty; // or some other position.. 

Прозрачность хорошо работает, когда вложенности управления. Он не работает, если перекрывает их!

(Конечно, код, который мы видим будет не обмен изображения!)

+0

Работать красиво пришлось немного поиграть с порядком pb, но да: P –

1

Лучшего подход для построения изображения с накладками офф-лайн в объекте Bitmap, а затем назначить это сконструированное изображение в PictureBox для отображения.

Например, как это:

int width = 100; 
int height = 100; 
Image image = new Bitmap(width, height); 

using (var graphics = Graphics.FromImage(image)) 
{ 
    graphics.DrawImage(MyApplication.Properties.Resources.ImageItemX, new Rectangle(0, 0, width, height)); 
    graphics.DrawImage(MyApplication.Properties.Resources.ImageGradeZ, new Rectangle(0, 0, width, height)); 
} 

myPictureBox.SizeMode = PictureBoxSizeMode.Zoom; 
myPictureBox.Image = image; 

Это предполагает, что ImageItemX и ImageGradeZ являются изображения с прозрачным фоном (например, в формате PNG), ввозимые в качестве ресурсов проекта под этими именами.


В приведенном примере эти ресурсы

Images defined in resources in project

код будет производить это:

Form showing combined images in PictureBox

+0

На самом деле OP просит «ничего больше», чем смотреть на PBox на один ниже. Нет проблем, если никакие элементы управления не будут доведены до __overlap__ .. - Тем не менее: рисование материала «на лету» также и часто является хорошим вариантом. – TaW

+0

yeah true TaW, что я хочу, - это подумать, что другая коробка для ящика для другого окна –