wpf - OnRenderSurfaceBaseLoaded null undtagelse ved tilslutning ved hjælp af Windows Remote Desktop

Indlæg af Hanne Mølgaard Plasc

Problem



OnRenderSurfaceBaseLoaded null undtagelse ved tilslutning ved hjælp af Windows Remote Desktop. Testet på SciChart 4.2.3.10193 og v5.1.0.11299 på Windows 10. Der er et relateret indlæg i det følgende, men løser ikke dette problem på SciChart v5.1.0.11299


https://www.scichart.com/questions/question/nullreferenceexception-when-using-direct3d[3]


Exception 1: Object reference not set to an instance of an object. 
at SciChart.Drawing.DirectX.Context.D3D10.Direct3D10RenderSurface.OnRenderSurfaceBaseLoaded(Object sender, RoutedEventArgs e) 
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) 
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) 
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent) 
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root) at MS.Internal.LoadedOrUnloadedOperation.DoWork() 
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks() at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget) 
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget) 
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)


Ændringer, vi har foretaget, omfatter at ringe IRenderSurface.Dispose () for at frigive hukommelsesforbrug stammer fra CustomRenderableSeries med LinearGradient Brush


if(scs.GetValue(SciChartSurfaceBase.RenderSurfaceProperty) is IRenderSurface renderSurface) renderSurface.Dispose();

Bedste reference


Ifølge SciCharts hjemmeside skal eksternt skrivebord understøttes uden nogen sammenbrud. [4]



   Q: Fungerer DirectX Renderer over Remote Desktop?

  
  A: Vi bruger D3DImage, som er en Microsoft-kontrol, der tillader deling af DirectX
  indhold med WPF, undgå luftrumsproblemer og tillade hurtig interop
  mellem WPFs DirectX9- og DirectX10-gengivelse.

  
  Desværre har D3DImage en fejl, en uhyggelig en. Det virker ikke over
  fjernbetjening, hvis din ansøgning er .NET4.0! Det vil fungere over
  Remote Desktop på .NET4.5 og derover.

  
  Siden SciChart v4 har vi udviklet en løsning, hvor SciChart
  DirectX vil nu fungere over fjernbetjening. Dette er automatisk og nej
  ændringer skal anvendes til din kode.



Jeg vil foreslå, om problemet stadig opstår i den seneste version (kontrol senest natligt fra NuGet) for at pakke kode op for at gengive og sende den til teknisk support. [5] [6]