我正在使用Silverlight 5构建一个3D应用程序.我有一个调用方法的DrawingSurface.但是,当我向我的XAML添加导航:Frame时,我会抛出一个错误.
这是有问题的方法:
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),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,_vertexBuffer.VertexCount / 3); device.SetVertexShaderConstantFloat4(0,ref _viewProjection); e.InvalidateSurface(); }
错误发生在line device.DrawPrimitives(PrimitiveType.TriangleList,_vertexBuffer.VertexCount / 3); .错误是“NullReferenceException未被用户代码处理”.没有导航就不会发生:框架.
解决方法
从这段代码中我们可以得出的唯一结论是,当您输入此方法时,“vertexBuffer”为空或null.通过“DrawPrimitive”方法在本地使用的那些或一些变量.
我不知道如何填充这个变量,但总的来说,当你不是100%确定提前填充的东西时,总是检查null或空是一个好习惯.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。