如果您在 WPF 上编码,则不应使用Windows 窗体东西。处理您使用的图像位图源及其派生类,并以编程方式访问您通常使用的资源打包 URI。但这不是唯一的方法。
这是一个在画布控件上绘制一些图像的小示例。
画布的 XAML 代码可能如下所示(这只是一个示例):
<Canvas Height="400" HorizontalAlignment="Left" Margin="0" Name="canvas1" VerticalAlignment="Top" Width="400" />
和你的主窗口代码...
public partial class MainWindow : Window
{
BitmapImage carBitmap = new BitmapImage(new Uri("pack://application:,,,/Images/BlueCar.png", UriKind.Absolute));
Image[] carImg = new Image[5];
Random rnd = new Random();
public MainWindow()
{
InitializeComponent();
double maxX = canvas1.Width - carBitmap.Width;
double maxY = canvas1.Height - carBitmap.Height;
for (int i = 0; i < carImg.Length; i++)
{
carImg[i] = new Image();
carImg[i].Source = carBitmap;
carImg[i].Width = carBitmap.Width;
carImg[i].Height = carBitmap.Height;
Canvas.SetLeft(carImg[i], rnd.NextDouble() * maxX);
Canvas.SetTop(carImg[i], rnd.NextDouble() * maxY);
canvas1.Children.Add(carImg[i]);
}
}
}
显然您需要更改图像资源的名称。顺便说一下,要添加图像,请转到Project > 添加现有项目...并选择您的图像文件,现在您的图像将出现在解决方案浏览器(默认情况下,Visual Studio 将图像资源存储在名为“Images”的文件夹中),如果选择它,您将在特性其窗口建立行动 is Resource, 不要改变这个!(有些人认为应该是嵌入资源但这是不正确的)。
如果你不明白这个new Uri("pack://application:,,,/Images/BlueCar.png", UriKind.Absolute)
,你应该阅读这个链接 on 打包 URI.