0

要素をWPF-Datagridドロップできる場所があります。これは、 .txtファイルから削除されたTextelementです(たとえば、notepad ++で開きます)。Drop-Eventで.txtファイルに関する情報を取得する可能性はありますか?

編集:

void OnDragDrop(object sender, DragEventArgs e)
{
    String text = e.Data.GetData(DataFormats.Text, true);
}

ここでドロップ要素のテキストを取得できますが、ドラッグが開始されるソースファイルを取得するための解決策が見つかりませんでした。

4

2 に答える 2

0

わかりました、ここに行きます:

WPF でドラッグ アンド ドロップを有効にするには、次の 3 つのことを行う必要があります。

  1. ドラッグ アンド ドロップをサポートするように要素に指示する
  2. DragOverイベントを設定する
  3. Dropイベントを設定する

では、まず XAML を見てみましょう。

<DataGrid AllowDrop="True"
            DragOver="DataGrid_DragOver"
            Drop="DataGrid_Drop"/>

そして、イベント ハンドラー コード:

private void DataGrid_DragOver(object sender, DragEventArgs e)
{
    // check if the element dragged over is one or more files
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        // if so, show a link cursor
        e.Effects = DragDropEffects.Link;
    }
    else
    {
        // otherwise show a "block" cursor
        e.Effects = DragDropEffects.None;
    }

    // IMPORTANT: mark the event as "handled by us", to apply the drag effects
    e.Handled = true;
}

private void DataGrid_Drop(object sender, DragEventArgs e)
{
    // Check if the data dropped is one or more files
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        // get the file pathes from the data object
        string[] filePaths = (e.Data.GetData(DataFormats.FileDrop) as string[]); 

        // do something with the pathes
        /* ... */
    }
}

詳細については、MSDN のドキュメントを参照してください。

于 2012-07-27T13:36:20.603 に答える
0

いいえ。

ドラッグ アンド ドロップはカット アンド ペーストと同じように考えてください。通常、イベント中にドラッグされるのは「データ」だけであり、そのソースに関する追加のメタデータはありません。

これに対する 1 つの例外は、Web ページからテキストをドラッグする場合です。DataFormats.Htmlテキストの元の SourceURL が含まれます。

于 2015-02-08T21:56:06.713 に答える