1

FirefoxからWindowsエクスプローラーに画像をドラッグアンドドロップして、画像を保存できます。どういうわけか、自分のアプリケーションで同じことを行うことができますか?つまり、Firefoxからアプリケーションの一部に画像をドラッグし、それによって画像をアプリケーションに取り込みますか?

私のアプリケーションは、.NET4とWPFで構築されています。

編集:ジョン・ケルナーは私を途中で手に入れましたが、正確には私が望む方法ではありません...

FirefoxからWindowsエクスプローラーにファイルをドラッグすると、ファイルはドラッグ元のWebサイトとまったく同じように保存されます。つまり、ファイル名、ファイル形式、ファイルサイズは同じです。右クリックして[名前を付けて保存]を選択したかのように、Webサイトから直接保存されているように見えます。私が得る唯一のものは、一時フォルダ内のビットマップへのパスです。いいですが、私が望むものではありません。そのビットマップを取得してJPEGなどに圧縮することもできると思いますが、実際にはオリジナルを取得したいと思います。この動作は、画像をWindowsエクスプローラーにドラッグしたときに発生する動作であるため、自分のアプリケーションで取得できる可能性があると考えました。

4

1 に答える 1

2

ウィンドウでのドロップを許可してから、ドロップ イベントを処理する必要があります。次に、FileDrop を読み取ってディスク上のファイルの場所を取得し、それをイメージまたは必要な場所にロードできます。

public MainWindow()
{
    InitializeComponent();
    this.AllowDrop = true;
    this.Drop += new DragEventHandler(MainWindow_Drop);
}

void MainWindow_Drop(object sender, DragEventArgs e)
{
    BitmapImage bi = new BitmapImage(new Uri(((string[])e.Data.GetData("FileDrop"))[0]));
    image1.Source = bi;

    // Get the different parameters available and see which work for you.
    foreach (var param in e.Data.GetFormats())
        Console.WriteLine(param);
}

これは、Firefox からアプリにドラッグしたときに取得したパラメーターのリストです。Filename または FilenameW に興味があるかもしれません。これらの文字列を GetData メソッドで使用して、必要なデータを取得します。

text/x-moz-url
FileGroupDescriptor
FileGroupDescriptorW
FileContents
UniformResourceLocator
UniformResourceLocatorW
text/x-moz-url-data
text/x-moz-url-desc
text/uri-list
text/_moz_htmlcontext
text/_moz_htmlinfo
text/html
HTML Format
Text
UnicodeText
System.String
application/x-moz-nativeimage
DeviceIndependentBitmap
FileDrop
FileNameW
FileName
Preferred DropEffect
application/x-moz-file-promise-url
application/x-moz-file-promise-dest-filename
DragImageBits
DragContext
于 2012-06-24T11:47:29.330 に答える