簡體   English   中英

將“開始”菜單中的項目拖動到WPF應用程序時會崩潰

[英]WPF application crashes when item from Start Menu is dragged over it

我遇到了一個奇怪的問題。 將Windows“開始”菜單中的項目拖到應用程序上時,它會崩潰。

但是,如果我從資源管理器中將文件拖到該文件上,則可以正確處理該文件(當該文件在我的應用程序上方時,該拖拽的項目會顯示一個紅色圓圈,並帶有一條直線)。

這就是奇怪的事情發生的地方。 既然我已經嘗試從資源管理器中拖動文件了,那么當我嘗試從“開始”菜單中拖動項目時,程序不會崩潰。 只有在啟動應用程序后從“開始”菜單中拖動的第一個項目時,它才會崩潰。

窗口和其中的所有控件都具有AllowDrop="False" 我試過在最外面的控件上為DragOverDragEnter添加事件處理程序,但斷點從未被命中。

這是我得到的例外:

托管調試助手'FatalExecutionEngineError':'運行時遇到致命錯誤。 錯誤的地址位於線程0x59f4上的0xc789d078。 錯誤代碼為0x80131623。 此錯誤可能是CLR或用戶代碼中不安全或不可驗證部分的錯誤。 該錯誤的常見來源包括COM-interop或PInvoke的用戶封送處理錯誤,這些錯誤可能會破壞堆棧。

隨后出現此異常:

'System.ExecutionEngineException:'拋出了類型為'System.ExecutionEngineException'的異常。

然后應用程序退出。

我正在使用Windows 10和64位。 .NET Framework 4.7.2

調用堆棧:

  [External Code] DataExchange.dll!CWinRtTarget::DragOver(struct IDragDropArgsPriv *,struct IDragUIOverridePriv * *) Unknown rpcrt4.dll!Invoke() Unknown rpcrt4.dll!Ndr64StubWorker() Unknown rpcrt4.dll!NdrStubCall3() Unknown combase.dll!CStdStubBuffer_Invoke(IRpcStubBuffer * This, tagRPCOLEMESSAGE * prpcmsg, IRpcChannelBuffer * pRpcChannelBuffer) Line 1524 C++ rpcrt4.dll!CStdStubBuffer_Invoke() Unknown [Inline Frame] combase.dll!InvokeStubWithExceptionPolicyAndTracing::__l6::<lambda_76d9e92c799d246a4afbe64a2bf5673d>::operator()() Line 1907 C++ combase.dll!ObjectMethodExceptionHandlingAction<<lambda_76d9e92c799d246a4afbe64a2bf5673d> >(InvokeStubWithExceptionPolicyAndTracing::__l6::<lambda_76d9e92c799d246a4afbe64a2bf5673d> action, ObjectMethodExceptionHandlingInfo * pExceptionHandlingInfo, ExceptionHandlingResult * pExceptionHandlingResult, void *) Line 91 C++ [Inline Frame] combase.dll!InvokeStubWithExceptionPolicyAndTracing(IRpcStubBuffer * pMsg, tagRPCOLEMESSAGE *) Line 1905 C++ combase.dll!DefaultStubInvoke(bool bIsAsyncBeginMethod, IServerCall * pServerCall, IRpcChannelBuffer * pChannel, IRpcStubBuffer * pStub, unsigned long * pdwFault) Line 1974 C++ [Inline Frame] combase.dll!SyncStubCall::Invoke(IServerCall *) Line 2031 C++ [Inline Frame] combase.dll!SyncServerCall::StubInvoke(IRpcChannelBuffer *) Line 807 C++ [Inline Frame] combase.dll!StubInvoke(tagRPCOLEMESSAGE * pMsg, CStdIdentity * pStdID, IRpcStubBuffer *) Line 2257 C++ combase.dll!ServerCall::ContextInvoke(tagRPCOLEMESSAGE * pMessage, IRpcStubBuffer * pStub, CServerChannel * pChannel, tagIPIDEntry * pIPIDEntry, unsigned long * pdwFault) Line 1542 C++ [Inline Frame] combase.dll!CServerChannel::ContextInvoke(tagRPCOLEMESSAGE *) Line 1438 C++ [Inline Frame] combase.dll!DefaultInvokeInApartment(tagRPCOLEMESSAGE *) Line 3549 C++ [Inline Frame] combase.dll!ClassicSTAInvokeInApartment(ServerCall *) Line 3313 C++ combase.dll!AppInvoke(ServerCall * pServerCall, CServerChannel * pChannel, IRpcStubBuffer * pStub, void * pv, void * pStubBuffer, tagIPIDEntry * pIPIDEntry, WireLocalThis * pLocalb) Line 1688 C++ combase.dll!ComInvokeWithLockAndIPID(ServerCall * pServerCall, tagIPIDEntry * pIPIDEntry, bool * pbCallerResponsibleForRequestMessageCleanup) Line 2804 C++ [Inline Frame] combase.dll!ComInvoke(ServerCall *) Line 2326 C++ combase.dll!ThreadDispatch(ServerCall * pServerCall) Line 422 C++ combase.dll!ThreadWndProc(HWND__ * window, unsigned int message, unsigned __int64 wparam, __int64 params) Line 798 C++ user32.dll!UserCallWinProcCheckWow() Unknown user32.dll!DispatchMessageWorker() Unknown WindowsBase.ni.dll!00007ffbc7f8f138() Unknown 

我的計算機上出現相同的症狀對於任何WPF創建的應用程序也是如此。 重新打開開始菜單進行修復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM