您可以通过在设置附加属性(Canvas.Left 和 Canvas.Top)的 Canvas 类上调用适当的静态方法来完成此操作。
Uri uri = new Uri("/Images/ball1.png", UriKind.Relative);
ImageSource img = new System.Windows.Media.Imaging.BitmapImage(uri);
image.SetValue(Image.SourceProperty, img);
cv.Children.Add(image);
// Position the image on the canvas
Canvas.SetLeft(150);
Canvas.SetTop(200);
如果您有要显示的图像列表,您可以执行以下操作:
List<Uri> imageUris = new List<Uri>()
{
new Uri(@"C:\Users\Grant\Pictures\Heron_zoomed.png"),
new Uri(@"C:\Users\Grant\Pictures\bridge.jpg")
};
int left = 20;
int top = 10;
foreach (var uri in imageUris)
{
Image image = new Image { Source = new BitmapImage(uri) };
Canvas.SetLeft(image, left);
Canvas.SetTop(image, top);
MainCanvas.Children.Add(image);
left += 400;
}
上面的代码假定您的窗口 xaml 中有类似以下内容,并且 imageUris 列表中的文件名存在。
<Grid>
<Canvas x:Name="MainCanvas">
</Canvas>
</Grid>
我不知道你想用这些图像做什么。如果您只想在网格中显示它们,您可以使用 WPF 集合控件之一来执行此操作而无需任何代码。
一种方法是使用 WPF 在网格中显示图像
我怀疑有更好的选择,但这将是一个开始。