在 WPF 应用程序中使用 x 和 y 坐标放置图像

Placing an image using x and y Coordinates in a WPF application

我目前正在尝试使用鼠标点击坐标将随机图像插入 canvas。但是,我不确定 X 和 Y 坐标在代码中的位置。任何指针都会非常感谢!

        private void canvas1_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            Point p = Mouse.GetPosition(canvas1);
            double x = p.X;
            double y = p.Y;

            Image myImage = new Image();
            string[] imageNames = { "greenslime.png", "blueslime.png", "redslime.png", "yellowslime.png" };
            var rand = new Random();
            string imageName = imageNames[rand.Next(imageNames.Length)];

            string imageSlime = string.Concat("", imageName);            
            myImage.Source = new BitmapImage(new Uri(imageSlime, UriKind.Relative));
            myImage.Width = 200;
            myImage.Height = 200;

            canvas1.Children.Add(myImage);
        }

您应该使用 Canvas.Top/Canvas.Left 附加的依赖属性。

在后面的代码中你应该使用:

myImage.Source = new BitmapImage(new Uri(imageSlime, UriKind.Relative));
myImage.Width = 200;
myImage.Height = 200;
Canvas.SetLeft(myImage, x);
Canvas.SetTop(myImage, y);
canvas1.Children.Add(myImage);

因为图像放在 canvas 中,canvas 将使用这些属性。


在 XAML 中将是:

<Canvas x:Name="canvas1">
    <Image Canvas.Top="10" Canvas.Left="20" Width="200" Height="200" />
</Canvas>