我写了这段代码来添加我的Labels
:
JArray a = JArray.Parse(temp);
Label[] labels = new Label[100];
foreach (JObject o in a.Children<JObject>())
{
foreach (JProperty p in o.Properties())
{
string name = p.Name;
string value = p.Value.ToString();
if (name == "name")
{
labels[counter] = new Label();
//Image i = Image.FromFile("item.jpg");
labels[counter].Text = value;
labels[counter].Image =Image.FromFile("item.jpg");
//labels[counter].Image
//labels[counter].BackColor = Color.Blue;
labels[counter].TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
labels[counter].Top = height;
height += 50;
Controls.Add(labels[counter]);
}
}
}
Image
应该拉伸到Label
大小。我该怎么做?
4条答案
按热度按时间eagi6jfj1#
显示和操作图像和文本的能力以一种相当狂野的方式分布在
Winforms
控件中。Label
不能拉伸它的Image
。PictureBox
和一个Panel
可以,但它们不显示它们的Text
Button
可以做到这两点,但将永远是一个Button
,无论你如何风格。因此,要获得组合,您需要或者所有者绘制:
DrawImage
以获得正确的图像大小,然后将Image
添加到Label
DrawString
和Text
放到Panel
上,以便在图像旁边显示或者您可以将两个控件与适当的能力结合起来:
您可以创建一个
Panel
并将其BackgroundImage
设置为Image和BackgroundImageLayout=Stretch
。然后您可以将设置了Text的Label
添加到Panel
的控件集合中:根据需要设置边框..
还有一个选择:如果所有
Images
的大小都相同,并且256x256
像素或更少,您可以将它们添加到ImageList
。这将以一种非常简单的方式将它们拉伸到ImageList.ImageSize
,然后您可以将它们添加到您的Label
。2lpgd9682#
很简单:
VB语言
C#语言
ivqmmu1c3#
如果您使用的是WinForms,请尝试以下操作:
mum43rcc4#
这非常适合我:
标签1.图像=新位图(标签1.图像,标签1.大小);
我尝试Zibri的解决方案,但在我的情况下变形的图像。