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

2024-02-18

在运行时将图像加载到 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,0" Name="image1" 
       Stretch="Fill" VerticalAlignment="Top" Width="350" />

很奇怪,因为我见过 XAML 标记内包含图像源的示例。

EDIT:

我现在用的是这个:

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,12,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="350" />
    <Button Content="Start" Height="23" HorizontalAlignment="Left" Margin="12,226,0,0" Name="btnStart" VerticalAlignment="Top" Width="75" />
    <Button Content="Land" Height="23" HorizontalAlignment="Left" Margin="287,226,0,0" Name="btnLand" VerticalAlignment="Top" Width="75" />
    <ComboBox Height="23" HorizontalAlignment="Left" Margin="110,226,0,0" Name="cmbChangeRoute" VerticalAlignment="Top" Width="156" />
</Grid>

编辑2: 我的问题已经解决,这段代码工作正常:

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

在 WPF 中,图像通常从Stream http://msdn.microsoft.com/en-us/library/8f86tw9e or an Uri http://msdn.microsoft.com/en-us/library/txt7706a.

位图图像 http://msdn.microsoft.com/en-us/library/ms619218支持两者,甚至可以将 Uri 作为构造函数参数传递:

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

如果图像文件位于本地文件夹中,则必须使用file://乌里。您可以从如下路径创建这样的 Uri:

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

如果图像文件是程序集资源,则 Uri 必须遵循Pack Uri http://msdn.microsoft.com/en-us/library/aa970069.aspx scheme:

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

在本例中,Visual Studio 构建操作为sas.png必须是Resource.

一旦你创建了一个BitmapImage并且还有一个Image http://msdn.microsoft.com/en-us/library/system.windows.controls.image.aspx像这样的 XAML 中的控制

<Image Name="image1" />

您只需将 BitmapImage 分配给Source该图像控件的属性:

image1.Source = bitmap;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在运行时将图像加载到WPF? 的相关文章

随机推荐