加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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或空是一个好习惯.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读