これを行うには、添付プロパティ (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 コレクション コントロールの 1 つを使用して、コードなしでこれを行うことができます。
これを行う1つの方法は、WPFでグリッドに画像を表示することです
より良い代替手段があると思いますが、これが始まりです。