Расположение изображения под курсором

имеется программа в которой нужно с помощью перетаскивания изображений слева на правый план помещения создать некую карту. Перетаскивание я реализовать смог, но когда начинаю узнавать расположение курсора то у меня всё плывёт и появляется не на своих местах. Так же надо чтобы при изменении размера окна изображения не уходили со своих мест на плане. Скриншот программы

Последнее что я пробовал это

XAML

<Grid>
       <Grid.ColumnDefinitions>
           <ColumnDefinition Width="250"/>
           <ColumnDefinition Width="*"/>
       </Grid.ColumnDefinitions>
       <Grid.RowDefinitions>
           <RowDefinition Height="75"/>
           <RowDefinition Height="50"/>
           <RowDefinition Height="*"/>
           <RowDefinition Height="50"/>
       </Grid.RowDefinitions>
       <TextBlock Text="Служба соревнований" FontSize="30" Foreground="Gray" Grid.Row="0" Grid.ColumnSpan="2"></TextBlock>
       <TextBlock Text="План помещения" FontSize="20" Grid.Row="1" Grid.Column="1" Margin="10"></TextBlock>
       <Border BorderBrush="Gray" BorderThickness="1" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" Grid.RowSpan="2" Margin="10"/>
       <Border BorderBrush="Gray" BorderThickness="1" Margin="10" Grid.Row="1" Grid.RowSpan="2">
           <ScrollViewer>
               <StackPanel Orientation="Vertical" x:Name="stackPanelPlaces" Margin="5">

               </StackPanel>
           </ScrollViewer>
       </Border>
       <StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
           <Button Content="Отчистить" Name="buttonClear" Click="ButtonClear_Click" Width="100" Margin="5" Height="25"  ></Button>
           <Button Content="Сохранить" Name="buttonSave" Click="ButtonSave_Click" Width="100" Margin="5" Height="25"  ></Button>
       </StackPanel>

       <DockPanel Grid.Column="1" Grid.Row="2" Margin="20,0,20,20">
           <Image Source="/WorldSkills;component/Images/BuildingPlan.jpg" AllowDrop="True" Drop="Image_Drop" Name="imageMap" ></Image>
       </DockPanel>
       <Grid x:Name="gridMap" Grid.Column="1" Grid.Row="2" Margin="20,0,20,20" Drop="Image_Drop" AllowDrop="True">

       </Grid>
   </Grid>

C#

private void Image_Drop(object sender, DragEventArgs e)
        {
            if (currentImage != null)
            {
                Image image = new Image();
                image.Source = currentImage;
                image.Width = 32;
                image.Height = 32;
                //var p = Mouse.GetPosition(null);
                //var t1 = Mouse.GetPosition(this);
                //var t = this.PointFromScreen(t1);
                System.Drawing.Point p = System.Windows.Forms.Cursor.Position;
                image.RenderTransform = new TranslateTransform { X = p.X, Y = p.Y };
                gridMap.Children.Add(image);
                System.Windows.Forms.MessageBox.Show(p.X + "-" + p.Y);
            }
            
        }

Ответы (0 шт):