2014-10-23 10 views
7

Buduję aplikację 3D z Silverlight 5. Mam DrawingSurface, która wywołuje metodę. Jednak po dodaniu nawigacji: Ramka do mojego XAML, otrzymuję komunikat o błędzie.Dodawanie nawigacji: Ramka powoduje NullReferenceException

Oto sposób na pytanie:

private void DrawingSurface_Draw(object sender, DrawEventArgs e) 
{ 

    GraphicsDevice device = GraphicsDeviceManager.Current.GraphicsDevice; 

    device.Clear(ClearOptions.Target | ClearOptions.DepthBuffer, 
       new Microsoft.Xna.Framework.Color(0, 0, 0, 0), 10.0f, 0); 

    device.SetVertexBuffer(_vertexBuffer); 
    device.SetVertexShader(_vertexShader); 
    device.SetPixelShader(_pixelShader); 
    device.Textures[0] = _texture; 

    device.SamplerStates[0] = SamplerState.LinearClamp; 
    device.DrawPrimitives(PrimitiveType.TriangleList, 0, 
          _vertexBuffer.VertexCount/3); 
    device.SetVertexShaderConstantFloat4(0, ref _viewProjection); 

    e.InvalidateSurface(); 

} 

Błąd znajduje się na linii device.DrawPrimitives(PrimitiveType.TriangleList, 0, _vertexBuffer.VertexCount/3);. Błąd polega na tym, że "wyjątek NullReferenceException był nieobsługiwany przez kod użytkownika." Nie występuje bez nawigacji: Frame.

+1

Nie znam tego. Ale błąd mówi, że 'PrimitiveType.TriangleList' i/lub' _vertexBuffer.VertexCount' są puste. Być może nie są one zaludniane w tym czasie, gdy próbujesz uzyskać do nich dostęp. –

+0

możliwy duplikat [Co to jest wyjątek NullReferenceException i jak mogę to naprawić?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-andhow-do-i-fix-it) –

+0

Proszę podać ślad stosu i wszelkie wewnętrzne wyjątki. – Nikhil

Odpowiedz

0

Z tego fragmentu kodu możemy wyciągnąć jedyny wniosek, że "vertexBuffer" jest pusty lub zerowy po wprowadzeniu tej metody. To lub niektóre varyibles używane lokalnie przez metodę "DrawPrimitive".

Nie mam pojęcia, jak ta zmienna jest wypełniona, ale ogólnie dobrze jest zawsze sprawdzać wartość pustą lub pustą, gdy nie masz 100% pewności, że rzeczy są wypełniane z góry.

Powiązane problemy