Размещение изображения с использованием координат x и y в приложении WPF - PullRequest
0 голосов
/ 06 апреля 2020

В настоящее время я пытаюсь вставить случайные изображения на холст, используя координаты щелчка мышью. Тем не менее, я не уверен, где координаты 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);
        }

1 Ответ

0 голосов
/ 06 апреля 2020

Вы должны использовать 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);

Поскольку изображение помещается на холст, холст будет использовать эти свойства.


В XAML это будет:

<Canvas x:Name="canvas1">
    <Image Canvas.Top="10" Canvas.Left="20" Width="200" Height="200" />
</Canvas>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...