添加导航:Frame导致NullReferenceException

时间:2014-10-23 18:43:16

标签: c# visual-studio-2010 silverlight xna silverlight-5.0

我正在使用Silverlight 5构建一个3D应用程序。我有一个调用方法的DrawingSurface。但是,当我添加导航:Frame到我的XAML时,我会抛出一个错误。

以下是有问题的方法:

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();

}

错误位于第device.DrawPrimitives(PrimitiveType.TriangleList, 0, _vertexBuffer.VertexCount / 3);行。错误是" NullReferenceException未被用户代码处理。"没有导航:Frame。

1 个答案:

答案 0 :(得分:0)

从这段代码中我们可以得出的唯一结论是,当您输入此方法时,“vertexBuffer”为空或null。通过“DrawPrimitive”方法在本地使用的那些或一些变量。

我不知道如何填充此变量,但总体而言,当您不是100%确定事先填充的内容时,总是检查null或为空是好的做法。