Это не сбой, все исключения, о которых я упоминаю здесь, можно увидеть только в окне вывода Visual Studio. Вот реализация Перетаскивания:
WPF:Что может вызвать COMExceptions при перетаскивании файла поверх рабочего стола?
<StackPanel Orientation="Vertical"
MouseDown="DragShortcut"
x:Name="Shortcut">
<Image Source="{Binding Icon}"/>
<Label Content="{Binding ShortcutLabel}"/>
</StackPanel>
CS код:
private void DragShortcut(object sender, MouseButtonEventArgs e)
{
if (e.LeftButton != MouseButtonState.Pressed)
return;
var dataObject = new DataObject(DataFormats.FileDrop, new[] { Options.DragDropOptions.ShortcutPath });
DragDrop.DoDragDrop(Shortcut, dataObject, DragDropEffects.Copy);
}
Все, кажется, работает, как ожидался, но каждый раз, когда я перетащить что-то над моим рабочим столом или окнами проводника я получаю следующие сообщения в окне «Выходные данные» моей Visual Studio:
...
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in PresentationCore.dll
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in PresentationCore.dll
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in PresentationCore.dll
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in PresentationCore.dll
A first chance exception of type 'System.NotImplementedException' occurred in PresentationCore.dll
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in PresentationCore.dll
...
Когда Visual Studio настроена на остановку на этом excep ЦИИ, можно увидеть следующие исключения:
System.Runtime.InteropServices.COMException was unhandled
Message: An exception of type 'System.Runtime.InteropServices.COMException' occurred in PresentationCore.dll and wasn't handled before a managed/native boundary
Additional information: Invalid FORMATETC-Structure (Exception HRESULT: 0x80040064 (DV_E_FORMATETC))
и
System.NotImplementedException was unhandled
Message: An exception of type 'System.NotImplementedException' occurred in PresentationCore.dll and wasn't handled before a managed/native boundary
Additional information: The method or operation is not implemented.
Это не приводит к аварии или что-нибудь, это просто неудобно для меня, как разработчик, чтобы иметь такую вещь происходит в фоновом режиме , Кто-нибудь имеет Идею, что это может быть?
EDIT:
This проблема очень похожа на мою, но, похоже, имеет другую причину и решение.
Возможный дубликат [Как избежать System.Runtime.InteropServices.COMException?] (Http://stackoverflow.com/questions/4281425/how-to-avoid-a-system-runtime-interopservices-comexception) – TheLethalCoder
@TheLethalCoder исключение похоже, хотя в моем случае у него, похоже, другая причина. – dmigo