我希望Tree tree = null;
if( family.TryGetValue( lastName, out tree ) )
{
var fName = tree.Name;
var age = tree.Age;
}
位于pbGrade
之上(pb =图片框)
pbItemtype
我已经尝试了这个但是pbItemtype甚至没有出现,2个图片框也改变了图像(pbItemtype和pbGrade)
答案 0 :(得分: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),这些图像是以这些名称作为项目资源导入的。
例如给定这些资源
代码将产生这个:
答案 1 :(得分: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..
嵌套控件时,透明度效果很好。但是,当重叠时,它不起作用!
(当然,我们看到的代码不交换图片!)