C# 鼠标位置和Canvas.SetLeft

C# 鼠标位置和Canvas.SetLeft,c#,C#,我正在尝试将图像设置到应用程序上的特定位置。我通过Mouse.GetPosition获得要设置的位置。但是,当我尝试使用Canvas.SetLeft时,此位置不正确。我怎样才能把它设置到我想要的位置 注意:这是一个在名为SI的画布上动态创建的图像控件,XC[0]是我从Mouse.GetPosition获得的X坐标 var webimage = new BitmapImage(new Uri("C:\\Class16\\Images\\DSC_0000.jpg")); va

我正在尝试将图像设置到应用程序上的特定位置。我通过
Mouse.GetPosition
获得要设置的位置。但是,当我尝试使用
Canvas.SetLeft
时,此位置不正确。我怎样才能把它设置到我想要的位置

注意:这是一个在名为SI的画布上动态创建的图像控件,XC[0]是我从Mouse.GetPosition获得的X坐标

var webimage = new BitmapImage(new Uri("C:\\Class16\\Images\\DSC_0000.jpg"));
            var imageControl = new Image();
            imageControl.Source = webimage;
            imageControl.Width =(XC[3] - XC[0]);
            imageControl.Height = (YC[1] - YC[0]);
            Canvas.SetLeft(imageControl, XC[0]);
            SI.Children.Add(imageControl);
以及获取鼠标位置的代码

private void Image_Frame_MouseDown(object sender, MouseButtonEventArgs e)
    {
        if (XC[3] == 0)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                if (DIP.Default.Image1BR == 0)
                {
                    Point position = e.GetPosition(this);
                    XC[variant] = position.X;
                    YC[variant] = position.Y;
                    variant++;
                }
            }
        }}
如果有帮助,这是画布Xaml部分

<Canvas x:Name="SI" Height="380" Width="720" Canvas.Left="177" Canvas.Top="31">
        <Image x:Name="Image_Frame" Height="380" Width="720" Drop="Image_Frame_Drop" AllowDrop="True" MouseDown="Image_Frame_MouseDown" />
    </Canvas>