C#另一个图片盒上的图片盒
我希望C#另一个图片盒上的图片盒,c#,winforms,picturebox,C#,Winforms,Picturebox,我希望pbGrade位于pbItemtype的顶部(pb=图片框) 我已经试过了,但是pbItemtype甚至没有出现,两个图片框也会改变图像(pbItemtype和pbGrade) 最好的方法是在位图对象中离线构建覆盖图像,然后将构建的图像指定给PictureBox进行显示 例如: int width = 100; int height = 100; Image image = new Bitmap(width, height); using (var graphics = Graphics
pbGrade
位于pbItemtype
的顶部(pb=图片框)
我已经试过了,但是pbItemtype甚至没有出现,两个图片框也会改变图像(pbItemtype和pbGrade)
最好的方法是在位图对象中离线构建覆盖图像,然后将构建的图像指定给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)的图像,作为项目资源导入到这些名称下
例如,考虑到这些资源 代码将生成以下内容:
事实上你可以很容易地做到这一点,事实上你已经做到了 代码可以正常工作,但是您还需要更正
位置,因为嵌套的PB将保留它之前的位置,因此可能会移到右下角,可能会留下新的父级的可见大小
…:
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..
当嵌套控件时,透明度效果良好。但是,当重叠它们时,它就不起作用了
(当然,我们看到的代码将不交换图像!)您不可能轻松做到这一点。我知道很多:实际上,OP要求的只是通过PBox查看下面的图片。没问题,只要没有控制重叠….-不过:在飞行中画东西也是一个很好的选择。是的,我想要的是看另一个图片框,另一个图片框工作得很好,必须使用pb顺序,但是是的:P
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..