c# – 添加导航:Frame导致NullReferenceException
发布时间:2020-12-15 07:52:08 所属栏目:百科 来源:网络整理
导读:我正在使用Silverlight 5构建一个3D应用程序.我有一个调用方法的DrawingSurface.但是,当我向我的XAML添加导航:Frame时,我会抛出一个错误. 这是有问题的方法: private void DrawingSurface_Draw(object sender,DrawEventArgs e){ GraphicsDevice device = G
我正在使用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或空是一个好习惯. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |