LØSNING: Du kan opleve flere problemer, når du gengiver grafik ved hjælp af WPF (Windows Presentation Foundation) i et .NET Framework 3.5 SP1-baseret program

Gælder for
.NET Framework 3.5 Service Pack 1

      
    

Symptomer

Du kan opleve følgende problemer, når du gengiver grafik ved hjælp af WPF (Windows Presentation Foundation) i et program .NET Framework 3.5 Service Pack 1 (SP1).

Udgave 1

Når du ændrer værdien af egenskaben VisualBrush.Visual i et WPF-program, går programmet ned.

Udgave 2

Der opstår en hukommelsesfejl i gengivelsestråden i et WPF-program, når du udfører en af følgende handlinger:

  • Du bruger pipelinen til softwaregengivelse til at gengive en 3D-scene, der indeholder et VisualBrush-objekt eller en DrawingBrush-objekt. Hvis du f.eks. bruger pipelinen til softwaregengivelse, når du udfører en af følgende handlinger:

    • Du gengiver scenen ved hjælp af klassen RenderTargetBitmap.
    • Du udskriver scenen.
    • Du angiver egenskaben for gengivelsesniveau til 0.
    • Du gengiver scenen via en forbindelse til Fjernskrivebord.
  • Du gengiver en scene ved hjælp af klassen WriteableBitmap på en computer, der ikke bruger WDDM (Windows Display Driver Model).

  • Du bruger hardwaregengivelsespipelinen til at gengive en scene ved hjælp af et VisualBrush-objekt i side eller en Tegningspensel-objekt i side på en computer, der ikke bruger WDDM.

          

Udgave 3

WPF-programmer, der bruger lagdelte vinduer, går ned, når du udfører en af følgende handlinger:

  • Du sætter en computer, der bruger XPDDM (Windows XP Display Driver Model), i standby, og derefter fortsætter du computeren fra standby.
  • Du skifter til fuldskærmskonsoltilstand på Windows XP.

Årsag

Årsag 1

Dette problem opstår, fordi der returneres en generisk fejl fra en gengivelsestråd, når handlingerne i tråden er placeret forkert. Disse handlinger medfører, at underordnede objekter fjernes fra et overordnet null-objekt.

Et visuelt objekt skal f.eks. fjernes fra et VisualBrush-objekt, før det fjernes fra VisualBrush-objektet. Handlingerne til fjernelse af visualobjektet kan dog være placeret forkert. Det visuelle objekt løsnes derfor fra et overordnet null-objekt.

Årsag 2

Dette problem opstår på grund af en referenceoptællingsfejl i gengivelsestråden.

Årsag 3

Dette problem opstår, fordi en Win32-fejlkode håndteres forkert.

Løsning

Du kan løse dette problem ved at anvende den hotfixpakke, der er beskrevet i følgende artikel i Microsoft Knowledge Base:

2667241 Der findes en opdateringspakke til Windows Presentation Foundation (WPF) til Microsoft .NET Framework 3.5

Flere oplysninger

Stak output

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)

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".