Sto costruendo un'applicazione 3D con Silverlight 5. Ho una DrawingSurface che chiama un metodo. Tuttavia, quando aggiungo una navigazione: Frame al mio XAML, ho quindi generato un errore.Aggiunta della navigazione: Frame provoca NullReferenceException
Ecco il metodo in questione:
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();
}
L'errore è alla linea device.DrawPrimitives(PrimitiveType.TriangleList, 0, _vertexBuffer.VertexCount/3);
. L'errore è che "NullReferenceException non è stato gestito dal codice utente". Non si verifica senza la navigazione: Frame.
Non ho familiarità con questo. Ma l'errore dice che 'PrimitiveType.TriangleList' e/o' _vertexBuffer.VertexCount' sono nulli. Forse non sono popolati in quel momento quando si tenta di accedervi. –
possibile duplicato di [Cos'è una NullReferenceException e come posso risolverlo?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) –
Fornire una traccia dello stack e eventuali eccezioni interne. – Nikhil