【问题标题】:How do I add an image to a label?如何将图像添加到标签?
【发布时间】:2012-10-02 15:15:47
【问题描述】:

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

        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.

【问题讨论】:

  • 代码是什么?是什么标签(winform、wpf、silverlight)?你想做什么,除了“不工作”还有什么问题?
  • 好吧,它不起作用,因为 .NET 中有不同的 Image 类。您尝试在 System.Windows.Controls.Image 上使用 System.Drawing.Image 中的方法。我对 Windows 窗体一无所知,但请查看 msdn.microsoft.com/en-gb/library/gg145045.aspx - 这是有关 API 的最佳知识来源。
  • 这是 wpf 标签。我在玩 21 点游戏(二十一点),我必须将标签制作为卡片图片。我正在尝试创建 Image 类,但 FromFile 不起作用。

标签: c# image label fromfile


【解决方案1】:

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

这样的代码可以工作:

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

【讨论】:

    【解决方案2】:

    这对我有用:

    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)
    

    【讨论】:

    • 注意:我发现 Label 不够用,很快切换到 Button,因为我想要 OnClick 事件。
    【解决方案3】:

    试试这个

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

    【讨论】: