1

我正在动态创建银色按钮

                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;

但是这个解决方案也不起作用。请帮助我。在此先感谢。

4

2 回答 2

0

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

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

于 2012-10-28T11:16:14.153 回答
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/"是文字字符串(并且不是项目中的文件夹)。我的图像文件的“构建操作”设置为“资源”。

因此,如果您的项目名称是“MyProject”,图像名称是“MyImage.png”,并且图像位于“MyProject”中的文件夹“MyFolder”中,则传递给 Uri 构造函数的正确字符串是:

"/MyProject;component/MyFolder/MyImage.png"
于 2014-01-14T19:01:51.463 回答