В UWP вы можете записывать данные в DragItemsStartingEventArgs.Data
в событии DragItemsStarting
. Вы пишете StorageItem
. При перетаскивании на рабочий стол система вызовет соответствующий метод обработки по умолчанию. Это поведение системы, и приложение UWP не может его предотвратить.
Если ваша цель - просто перетащить вкладку и создать новое окно, вам не нужно записывать данные в DataPackage
, просто пусть они обрабатываются внутри приложения и прослушивают событие DragItemsCompleted
.
private void Tabs_DragItemsStarting(object sender, DragItemsStartingEventArgs e)
{
//get file
e.Items.Add(myFile);
}
private void Tabs_DragItemsCompleted(ListViewBase sender, DragItemsCompletedEventArgs args)
{
var items = args.Items;
if (items.Count > 0)
{
foreach (var item in items)
{
if(item is StorageFile file)
{
// create new window
}
}
}
}
Если данные записываются в DataPackage
, это означает, что сторона, получающая данные, обрабатывает данные (например, как настольный компьютер или другое программное обеспечение), и это приложение процесса не может вмешиваться.
Спасибо.