0

カラーコンボボックスで塗りつぶすことができる楕円オブジェクトを作成しました。ここで、円をクリック (押したまま) し、カーソルをキャンバスにドラッグし、マウスボタンを放すと、クリックした円と同じサイズと色で新しい円がその場所に描画される必要があります。

Drop イベントで何か間違ったことをしていると思います。

    private Ellipse dragCircle = new Ellipse();

    private void eBallColor_MouseMove(object sender, MouseEventArgs e)
    {
        dragCircle = (Ellipse)sender;
        if (e.LeftButton == MouseButtonState.Pressed)
        {
            DataObject dragColor = new DataObject("theColor", dragCircle.Fill);
            DragDrop.DoDragDrop(dragCircle, dragColor, DragDropEffects.Move);
        }
    }

    private void Ellipse_Drop(object sender, DragEventArgs e)
    {
        Ellipse circle = (Ellipse)sender;
        if (e.Data.GetDataPresent("theColor"))
        {
            Brush draggedColor = (Brush)e.Data.GetData("theColor");
            circle.Fill = draggedColor;
            dragCircle.Fill = Brushes.White;
            Point pos = e.GetPosition(canvasCard);
            double posX = pos.X;
            double posY = pos.Y;
            Canvas.SetLeft(dragCircle, posX);
            Canvas.SetTop(dragCircle, posY);
            canvasCard.Children.Add(dragCircle);
        }
    }
4

0 に答える 0