Симптоми
Можете да наблюдавате някой от следните проблеми при рендиране на графика чрез Windows представяне фондация (WPF) в .NET Framework 3.5 Service Pack 1 (SP1)-базирано приложение.
Проблем 1
Когато промените стойността на свойството VisualBrush.Visual в WPF приложение, приложението се срива.
Проблем 2
Изтичане на памет възниква рендиране в темата на WPF приложение при извършване на едно от следните действия:
-
Използвате софтуерно рендиране канал за рендиране на 3D сцената, която включва VisualBrush или DrawingBrush обект. Например използвате софтуерно рендиране канал при извършване на едно от следните действия:
-
Рендиране на сцената с помощта на класа RenderTargetBitmap .
-
Можете да отпечатате сцената.
-
Зададете свойството рендиране ниво 0.
-
Рендиране на сцената по връзка с отдалечен работен плот.
-
-
Рендиране на сцената с помощта на клас WriteableBitmap на компютър, който не използва Windows Display Driver Model (WDDM).
-
Използвате хардуерно рендиране канал за рендиране на сцената чрез плочки VisualBrush или плочки DrawingBrush обект на компютър, който не използва WDDM.
Проблем 3
WPF приложения, които използват слоеве windows срив при извършване на едно от следните действия:
-
Можете да поставите компютър, използващ Windows XP дисплей драйвер модел (XPDDM) в режим на готовност и след възстановяване на компютъра от режим на готовност.
-
Превключване към режим на цял екран конзолата на Windows XP.
Причина
Причина 1
Този проблем възниква, защото обща грешка се връща от render нишка при операции в темата са подредени неправилно. Тези операции водят обекти наследници да се отдели от null родителски обект.
Например Visual обект трябва да бъдат премахнати от VisualBrush обект, преди той е отделен от VisualBrush обект. Обаче операции за премахване на визуални обекта може да се поръча неправилно. Следователно Visual обект отделя от null родителски обект.Причина 2
Този проблем възниква поради препратка отчитане грешка рендиране в темата.
Причина 3
Този проблем възниква, защото неправилно се обработва код за грешка на Win32.
Решение
За да разрешите този проблем, приложете пакета с актуални корекции, който е описан в следната статия от базата знания на Microsoft:2667241 Сборен пакет за актуализация е наличен за Windows Presentation Foundation (WPF) за Microsoft .NET Framework 3.5
Допълнителна информация
Изходни данни на стека
System.InvalidOperationException: An unspecified error occurred on the render thread.
at System.Windows.Media.MediaContext.NotifyPartitionIsZombie(Int32 failureCode) at System.Windows.Media.MediaContext.NotifyChannelMessage() at System.Windows.Interop.HwndTarget.HandleMessage(Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".