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>