我有WPF-Datagrid
我可以放弃一个元素。这是从 .txt 文件中删除的 Textelement (例如,使用notepad ++打开)。有没有可能在Drop-Event上获取有关.txt文件的信息?
修改
void OnDragDrop(object sender, DragEventArgs e)
{
String text = e.Data.GetData(DataFormats.Text, true);
}
这里我可以获取我的drop元素的Text,但是我找不到获取源文件的解决方案,拖动开始的地方。
答案 0 :(得分:0)
好的,你去吧:
你必须做三件事才能在WPF中实现拖放:
DragOver
活动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 documentation。
答案 1 :(得分:0)
没有
想想拖动&amp;以 Cut&amp;粘贴 - 通常只有&#34;数据&#34;在活动期间被拖延,没有关于其来源的其他元数据。
一个例外是从网页拖动文本时。 DataFormats.Html
将包含文本来自的SourceURL。