鼠标位置和Canvas.SetLeft

时间:2013-03-31 22:06:23

标签: c#

我正在尝试将图像设置为应用程序上的特定位置。我得到了我想通过Mouse.GetPosition设置的位置。但是,当我尝试使用Canvas.SetLeft时,此位置不正确。如何将其设置到我想要的位置?

注意:这是一个动态创建的Image Control到一个名为SI的Canvas上,而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++;
                }
            }
        }}

如果有帮助,这就是Canvas 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>

0 个答案:

没有答案