[WPF / C #] Arrastrar y soltar Control de imagen

Original: [WPF / C #] Arrastrar y soltar Control de imagen

Requisitos: hacer que el control de imagen se pueda arrastrar.

Idea: La clave es reescribir varios eventos del mouse del control de Imagen para lograr el control.

Recepción

<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"/>

Entre bastidores:

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;
}

Supongo que te gusta

Origin www.cnblogs.com/lonelyxmas/p/12741791.html
Recomendado
Clasificación