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.
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. –
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) –
Proszę podać ślad stosu i wszelkie wewnętrzne wyjątki. – Nikhil