如何使用WPF将图像拖放到铬上。 [英] How to drag and drop image on the chromium using WPF.

查看:115
本文介绍了如何使用WPF将图像拖放到铬上。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用WPF拖动图像并放下铬。

当我将图像放在铬上时,运行JavaScript。

这可能吗?



这个源代码只是拖放图像。



请帮忙。



我尝试过:



 private void AddButtonClick( object sender,RoutedEventArgs e)
{
var dialog = new Microsoft.Win32.OpenFileDialog();

dialog.Filter =
图像文件(* .jpg; * .jpeg; * .gif; * .bmp)| * .jpg; * .jpeg; * .gif; * .BMP;

if((bool)dialog.ShowDialog())
{
var bitmap = new BitmapImage(new Uri(dialog.FileName));
var image = new Image {Source = bitmap};
Canvas.SetLeft(image,0);
Canvas.SetTop(image,0);
canvas.Children.Add(image);
}
}

private图片draggedImage;
private Point mousePosition;

private void CanvasMouseLeftButtonDown(object sender,MouseButtonEventArgs e)
{
var image = e.Source as Image;

if(image!= null&& canvas.CaptureMouse())
{
mousePosition = e.GetPosition(canvas);
draggedImage = image;
Panel.SetZIndex(draggedImage,1); //在多个图像的情况下
}
}


private void CanvasMouseLeftButtonUp(对象发送者,MouseButtonEventArgs e)
{
if( draggedImage!= null)
{
canvas.ReleaseMouseCapture();
Panel.SetZIndex(draggedImage,0);
draggedImage = null;
}
}

private void CanvasMouseMove(对象发送者,MouseEventArgs e)
{
if(draggedImage!= null)
{
var position = e.GetPosition(canvas);
var offset = position - mousePosition;
mousePosition = position;
Canvas.SetLeft(draggedImage,Canvas.GetLeft(draggedImage)+ offset.X);
Canvas.SetTop(draggedImage,Canvas.GetTop(draggedImage)+ offset.Y);
}
}

解决方案

Google出现了这个例子: CefSharp / CefSharp.Wpf.Example / Handlers / DragHandler.cs [ ^ ]

I want to drag an image and drop on the chromium using WPF.
When i dropped the image on the chromium, for run JavaScript.
Is this possible?

This source code is just to drag and drop images.

please help.

What I have tried:

private void AddButtonClick(object sender, RoutedEventArgs e)
      {
          var dialog = new Microsoft.Win32.OpenFileDialog();

          dialog.Filter =
              "Image Files (*.jpg; *.jpeg; *.gif; *.bmp)|*.jpg; *.jpeg; *.gif; *.bmp";

          if ((bool)dialog.ShowDialog())
          {
              var bitmap = new BitmapImage(new Uri(dialog.FileName));
              var image = new Image { Source = bitmap };
              Canvas.SetLeft(image, 0);
              Canvas.SetTop(image, 0);
              canvas.Children.Add(image);
          }
      }

      private Image draggedImage;
      private Point mousePosition;

      private void CanvasMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
      {
          var image = e.Source as Image;

          if (image != null && canvas.CaptureMouse())
          {
              mousePosition = e.GetPosition(canvas);
              draggedImage = image;
              Panel.SetZIndex(draggedImage, 1); // in case of multiple images
          }
      }


      private void CanvasMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
      {
          if (draggedImage != null)
          {
              canvas.ReleaseMouseCapture();
              Panel.SetZIndex(draggedImage, 0);
              draggedImage = null;
          }
      }

      private void CanvasMouseMove(object sender, MouseEventArgs e)
      {
          if (draggedImage != null)
          {
              var position = e.GetPosition(canvas);
              var offset = position - mousePosition;
              mousePosition = position;
              Canvas.SetLeft(draggedImage, Canvas.GetLeft(draggedImage) + offset.X);
              Canvas.SetTop(draggedImage, Canvas.GetTop(draggedImage) + offset.Y);
          }
      }

解决方案

Google turned up this example: CefSharp / CefSharp.Wpf.Example / Handlers / DragHandler.cs[^]


这篇关于如何使用WPF将图像拖放到铬上。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆