拖放动态生成的图像[C#/ Windows Store App]

时间:2014-03-20 00:58:46

标签: c# image drag-and-drop windows-store-apps dynamically-generated

我有动态生成的图像。如果我点击最后添加的图像它正常拖动,但当我点击其他图像并试图拖动它时,最后添加图像再次拖动。

这是我的代码

void setDynamicImages()
    {

        for (int i = 0; i < 10; i++)
        {
            RectMeyve = new Rectangle();
            IMG_meyve = new Image();


                    IMG_meyve.Height = 36 * ratioHeight;
                    IMG_meyve.Width = 51 * ratioWidth;

                    randMeyveCesit = Rand.Next(5);
                    IMG_meyve.Source = new BitmapImage(new Uri("ms-appx:///Assets/Sayfa10/dusen_meyveler/cilek_0" + (randMeyveCesit + 1) + ".png"));

                    IMG_meyve.Tag =randMeyveTur;
                    pressedIMGTag =randMeyveTur;


            RectMeyve.Fill = new SolidColorBrush(Colors.Aqua);
            RectMeyve.Height = IMG_meyve.ActualHeight;
            RectMeyve.Width = IMG_meyve.Width;
            Canvas.SetLeft(RectMeyve, Canvas.GetLeft(IMG_meyve));
            Canvas.SetTop(RectMeyve, Canvas.GetTop(IMG_meyve));
            RectMeyve.Opacity = 0.6;
            RectMeyve.IsHitTestVisible = false;


            IMG_meyve.ActualWidth, IMG_meyve.ActualHeight);
            this.canvasMeyveleriSayalim.Children.Add(IMG_meyve);
            this.canvasMeyveleriSayalim.Children.Add(RectMeyve);

            IMG_meyve.PointerPressed += IMG_meyve_PointerPressed;
            IMG_meyve.PointerReleased += IMG_meyve_PointerReleased;


        }

    }
  

private void IMG_meyve_PointerPressed(object sender, PointerRoutedEventArgs e)
    {

            isHoldMeyve = true;
            positionWithinImage = e.GetCurrentPoint(sender as Image).Position;
            meyveX = e.GetCurrentPoint(IMG_meyve).Position.X;
            meyveY = e.GetCurrentPoint(IMG_meyve).Position.Y;

    }
  

private void canvasSayfa10_PointerMoved(object sender, PointerRoutedEventArgs e)
    {
        if (isHoldMeyve)
        {
            if (Convert.ToInt32(IMG_meyve.Tag) == pressedIMGTag) //this part useless
            {
                PointerPoint pt1 = e.GetCurrentPoint(canvasMeyveleriSayalim);
                Canvas.SetLeft(IMG_meyve, pt1.Position.X - meyveX);
                Canvas.SetTop(IMG_meyve, pt1.Position.Y - meyveY);
            }
        }
    }
抱歉我的英语。 我错了。

0 个答案:

没有答案