[WPF / C#]画像コントロールをドラッグアンドドロップ

オリジナル: [WPF / C#]画像コントロールをドラッグアンドドロップ

要件:画像コントロールをドラッグできるようにします。

アイデア:重要なのは、コントロールを実現するためにImageコントロールのいくつかのマウスイベントを書き換えることです。

フロント:

<Image 
    Source="C:\Users\Administrator\Documents\Visual Studio 2015\Projects\WpfApplication1\WpfApplication1\Resources\Images\Application.ico"
    MouseLeftButtonUp="Image_MouseLeftButtonUp" 
    MouseLeftButtonDown="Image_MouseLeftButtonDown" 
    MouseMove="Image_MouseMove"/>

舞台裏:

private void Image_MouseMove(object sender, MouseEventArgs e)
{
    if (isDown)
    {
        Image image = e.Source as Image;
        // 因为Image图片的原点位于它的左上角而非中心点,所以还需要减去自身宽高的一半
        Canvas.SetLeft(image, e.GetPosition(canvas).X - image.ActualWidth/2);
        Canvas.SetTop(image, e.GetPosition(canvas).Y - image.ActualHeight/2);
    }
}

private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    isDown = true;
}

private void Image_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    isDown = false;
}

おすすめ

転載: www.cnblogs.com/lonelyxmas/p/12741791.html