在Silverlight中动态创建Button上添加图像

时间:2012-10-26 10:47:10

标签: visual-studio-2010 image silverlight button media

我正在动态创建银色灯光按钮

                HistoryButtton = new Button();
                HistoryButtton.Content = "History";
                HistoryButtton.Height = GetPercentageValue(TotalHeight, 8);
                HistoryButtton.Width = GetPercentageValue(TotalHeight, 15);

我试过这个解决方案

    ImageBrush brush = new ImageBrush();
    brush.ImageSource = new BitmapImage(new Uri(@"Images/history.png", UriKind.Relative)); 
    HistoryButtton.Background = brush;

但它不起作用。 我也试过这个解决方案

   Uri uri = new Uri("/Images/history.png", UriKind.Relative);  
   BitmapImage imgSource = new BitmapImage(uri);
   Image image = new Image();
   image.Source = imgSource;
   HistoryButtton.Content = image;

但是这个解决方案也没有用。请帮帮我。谢谢。

2 个答案:

答案 0 :(得分:0)

尝试将您的Uri第一个参数更改为这样 “/SolutionName;component/Images/history.png”

用您的解决方案名称替换SolutionName。

答案 1 :(得分:0)

这里的问题和其中一个答案帮助我解决了同样的问题,但我仍然在努力了一段时间(实际上,不止一段时间),因为我错过了一些非常简单的事情。以下是适用于我的完整代码:

Dim b As New Button
Dim uri As New Uri("/<project name>;component/<path to image>", UriKind.Relative)
Dim imgSource As New Imaging.BitmapImage(uri)
Dim image As New Image()
image.Source = imgSource
b.Content = image

有两件事让我无法早日解决这个问题:

  1. <project name>是图像所在项目的名称,可能与代码所在的项目不同。
  2. "component/"是一个文字字符串(并不是项目中的文件夹)。我的图像文件的“构建操作”设置为“资源”。
  3. 因此,如果你的项目名称是“MyProject”,你的图像名称是“MyImage.png”,图像位于“MyProject”中的“MyFolder”文件夹中,传递给Uri构造函数的正确字符串是:< / p>

    "/MyProject;component/MyFolder/MyImage.png"