2012-10-11 139 views
-5

我必须将图像添加到我的标签,但我找不到解决方案如何执行此操作。 我使用尝试此:如何将图像添加到标签?

 InitializeComponent(); 
     url = Directory.GetCurrentDirectory() + @"/Cards/cardSkin.png"; 
     mylabel.Background = new ImageBrush(new BitmapImage(new Uri(url))); 

即使我使用这个权利,我不知道,我只是复制这个从别人什么项目我们做了与类。 无论如何,我试图创建Image img = Image.FromFile("YourFile.bmp");,但我不知道为什么,.FromFile不适合我。 你们中的任何人都有另一种方式来制作标签作为图片(背景),并帮助新手做到这一点? :d

引发的异常:

Error 1 'System.Windows.Controls.Image' does not contain a definition for 'FromFile. 
+0

什么的代码是(的winform,WPF,Silverlight的)什么样的标签?你想做什么,除了“不工作”之外还有什么问题? – xing

+1

嗯,它没有用,因为.NET中有不同的Image类。您已尝试使用System.Windows.Controls.Image上的System.Drawing.Image的方法。我对Windows Forms一无所知,但请看http://msdn.microsoft.com/en-gb/library/gg145045.aspx - 这是关于API的最佳知识来源。 –

+0

这是wpf标签。我正在做21游戏(二十一点),我必须将标签制作为卡片图片。我试图创建Image类,但FromFile不起作用。 – herblack

回答

0

试试这个

Image img = System.Drawing.Bitmap.FromFile(filename); 
4

这个工作对我来说:

Label ilabel = new Label(); // create a label 
Image i = Image.FromFile("image.png"); // read in image 
ilabel.Size = new Size(i.Width, i.Height); //set label to correct size 
ilabel.Image = i; // put image on label 
this.Controls.Add(ilabel); // add label to container (a form, for instance) 
+0

注:我发现一个标签是不够的,很快切换到一个Button,因为我想要OnClick事件。 我的按钮有一个Tile对象作为一个成员,有关于棋盘位置,tilebag位置,图像等的信息 - 游戏需要的东西。所以所有的按钮都是空白的,当你点击时会变成瓦片 - 想想扫雷。 – Engineer

0

如果您使用的窗体设计器创建一个标签,确保将AutoSize设置为false。否则.Width将为0,因为文本为空,并且修改.Size将被忽略。

这样的代码将工作:

label1.Image?.Dispose(); // prevent memory leak 
var image = Image.FromFile(@"image.png"); 
label1.Size = image.Size; 
label1.Image = image;