编程如何设置图像源

44
当图像的源属性以以下方式设置时,图片将从/ Images / down.png 获取。如何在编程中执行相同的操作?
<Image x:Name="myImg" Source="/MyProject;component/Images/down.png" />
以下代码不起作用,因为Image.Source属性不是字符串类型。
myImg.Source = "/MyProject;component/Images/down.png"; 

1
可能是重复问题:https://dev59.com/x3RC5IYBdhLWcg3wSu57 - Kirill Polishchuk
3
虽然Silverlight和WPF在许多方面都很相似,但我不会说它们是重复的。特别是在资源位置方面。 - Kornelije Petak
6个回答

85

试试这个:

BitmapImage image = new BitmapImage(new Uri("/MyProject;component/Images/down.png", UriKind.Relative));

哦,基本上是Uri类根据字符串中指定的内容进行转换。我不知道这一点。 - Kornelije Petak
5
若您指定了绝对路径,请记得将其设置为UriKind.Absolute。这句话的原文是"MyImg.Source = image;",意思是将一个名为"image"的图片赋值给"MyImg"的源属性。接着提醒了一句,如果您指定的是绝对路径(absolute path),需要将它设置为"UriKind.Absolute",以确保程序正确地读取路径。 - Exel Gamboa

17
myImg.Source = new BitmapImage(new Uri(@"component/Images/down.png", UriKind.RelativeOrAbsolute)); 

不要忘记将构建操作设置为“内容(Content)”,并将复制到输出目录设置为“始终复制(Always)”。


7
尝试使用以下方式来分配图片:
imgFavorito.Source = new BitmapImage(new Uri(base.BaseUri, @"/Assets/favorited.png"));

3
{yourImageName.Source = new BitmapImage(new Uri("ms-appx:///Assets/LOGO.png"));}

LOGO是指您的形象

希望能够帮助任何人。:)


0

试一下这个

PictureBox picture = new PictureBox
        {
            Name = "pictureBox",
            Size = new Size(100, 50),
            Location = new Point(14, 17),
            Image = Image.FromFile(@"c:\Images\test.jpg"),
            SizeMode = PictureBoxSizeMode.CenterImage
        };
p.Controls.Add(picture);

-1
使用 asp:image
<asp:Image id="Image1" runat="server"
           AlternateText="Image text"
           ImageAlign="left"
           ImageUrl="images/image1.jpg"/>

并且使用codebehind更改图像URL

Image1.ImageUrl = "/MyProject;component/Images/down.png"; 

1
请注意,问题的标签为Silverlight。我没有在ASP中做任何事情。但无论如何,感谢您的回复。 - Kornelije Petak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接