【问题标题】:How to change the background of a button programatically?如何以编程方式更改按钮的背景?
【发布时间】:2013-09-12 03:53:04
【问题描述】:

我需要在单击另一个按钮时更改按钮的 BackgroundImage(在 C# 中的 Windows 窗体中)。但是我不知道怎么做!!

我在互联网上搜索并找到了很多示例,它们都使用 ImageBrush、ImageSource 等....但是这些在我的应用程序上不起作用,每次我使用它们时都会显示错误。

我在网上看到我必须添加这个命名空间:

using Windows.UI.Xaml.Media.Imaging;

但它在乞求时向我显示了一个错误,它说在Windwons 之前添加这个System 以及当我添加它时:

using System.Windows.UI.Xaml.Media.Imaging;

它向我显示了UI 的错误...。我不知道如何解决这个问题!!

请帮帮我!

【问题讨论】:

  • 为什么不直接使用 btn.BackColor = Color.Green?
  • 你找到的都是WPF stuff,而不是Winforms stuff
  • 您正在尝试使用只能在应用商店应用程序中使用的命名空间。又名 WinRT 应用程序。您不能将其与 Winforms 混合使用。改用 System.Drawing,Bitmap 类。

标签: c# winforms visual-studio-2010 button background-image


【解决方案1】:

您正在尝试在Winforms 中使用WPF 的解决方案。这行不通。

您需要的类是System.Drawing.Image(或System.Drawing.Bitmap,继承自Image)。

Bitmap b = new Bitmap(@"C:\myBitmap.jpg");
myButton.Image = b;

如果您的Bitmap 不再使用,请务必致电Dispose

【讨论】:

    【解决方案2】:

    要更改button 的背景图像,我知道有两种方法。

    1. 将图片添加到项目的资源文件夹中并使用。

      private void button2_Click(object sender, EventArgs e)
      {
          button1.BackgroundImage = Properties.Resources.ImageName;
      }
      
    2. 使用Image.FromFile();

      private void button2_Click(object sender, EventArgs e)
      {
          button1.BackgroundImage = Image.FromFile(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) + "//Card1.png");
      }
      

    【讨论】:

      猜你喜欢
      • 2011-03-07
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      相关资源
      最近更新 更多