c# – 如何在运行时将图像加载到WPF?

前端之家收集整理的这篇文章主要介绍了c# – 如何在运行时将图像加载到WPF?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
经过一些搜索,在运行时将图像加载到 WPF窗口似乎是相当复杂的!
Image image;
        image = new Uri("Bilder/sas.png",UriKind.Relative);
        ????.Source = new BitmapImage(image);

我正在尝试这段代码,但是我需要一些帮助才能使其工作.我得到代码下面的一些红线!我也想知道我是否需要在XAML代码添加一些额外的代码,或者是足够的:

<Image Height="200" HorizontalAlignment="Left" Margin="12,12,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="350" />

想知道,因为我已经看到了XAML标签内的图像的例子.

编辑:

我用这个知道:

var uri = new Uri("pack://application:,/sas.png");
        var bitmap = new BitmapImage(uri);
        image1.Source = bitmap;

XAML:

<Grid Width="374">
    <Image Height="200" HorizontalAlignment="Left" Margin="12,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="350" />
    <Button Content="Start" Height="23" HorizontalAlignment="Left" Margin="12,226,0" Name="btnStart" VerticalAlignment="Top" Width="75" />
    <Button Content="Land" Height="23" HorizontalAlignment="Left" Margin="287,0" Name="btnLand" VerticalAlignment="Top" Width="75" />
    <ComboBox Height="23" HorizontalAlignment="Left" Margin="110,0" Name="cmbChangeRoute" VerticalAlignment="Top" Width="156" />

</Grid>

编辑2:
我的答案是“解决了”,但是在Stack Overflow之外有一些帮助.此代码工作正常:

BitmapImage image = new BitmapImage();
        image.BeginInit();
        image.UriSource = new Uri("pack://application:,/Resources/" + company + ".png");
        image.EndInit();
        image2.Source = image;

解决方法

在WPF中,图像通常从 StreamUri加载.

BitmapImage支持两者,Uri甚至可以作为构造函数参数传递:

var uri = new Uri("http://...");
var bitmap = new BitmapImage(uri);

如果图像文件位于本地文件夹中,则必须使用一个文件:// Uri.你可以从这样的路径创建这样一个Uri:

var path = Path.Combine(Environment.CurrentDirectory,"Bilder","sas.png");
var uri = new Uri(path);

如果映像文件是程序集中的资源,则Uri必须遵循Pack Uri方案:

var uri = new Uri("pack://application:,/Bilder/sas.png");

在这种情况下,sas.png的Visual Studio Build Action必须是Resource.

一旦你创建了一个BitmapImage,并且还有这个XAML中的Image控件

<Image Name="image1" />

您只需将BitmapImage分配给该Image控件的Source属性

image1.Source = bitmap;

猜你在找的C#相关文章