【问题标题】:Silverlight 5: GraphicsDevice is always nullSilverlight 5:GraphicsDevice 始终为空
【发布时间】:2012-03-01 11:39:07
【问题描述】:

我正在使用 Silverlight 5.0 开发 3D 应用程序。

对我来说System.Windows.Graphics.GraphicsDeviceManager.Current.GraphicsDevice 总是显示null

这是我的代码

private void DrawingSurface_Loaded(object sender, RoutedEventArgs e)
    {
        if (GraphicsDeviceManager.Current.RenderMode != RenderMode.Hardware)
        {
            if (GraphicsDeviceManager.Current.RenderModeReason == RenderModeReason.SecurityBlocked)
            {
                throw new  Exception();
            }
        }


        GraphicsDevice device = System.Windows.Graphics.GraphicsDeviceManager.Current.GraphicsDevice;

        _vertexBuffer = StreamHelper.ToMesh(device, "cube.obj");

        _effect = new BasicEffect(GraphicsDeviceManager.Current.GraphicsDevice);
        _effect.Texture = StreamHelper.ToTexture2D(device, "Tulips.jpg");
        _effect.TextureEnabled = true;
        _effect.World = Matrix.Identity;
        _effect.View = Matrix.CreateLookAt(new Vector3(5.0f, 5.0f, 5.0f), Vector3.Zero, Vector3.Up);
        _effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, 1.667f, 1.0f, 10.0f);
    }

谁能帮帮我。

【问题讨论】:

    标签: silverlight silverlight-5.0


    【解决方案1】:

    您是否允许使用 3D 图形?如果不运行 Silverlight.Configuration.exe(对我来说它位于“C:\Program Files (x86)\Microsoft Silverlight\5.0.61118.0\”中)并选择权限选项卡。那里允许 3D 图形。

    【讨论】:

      【解决方案2】:

      您可能需要检查其他一些 GraphicsDeviceManager.Current.RenderModeReason 值。正如这篇文章中所讨论的那样:http://blogs.msdn.com/b/eternalcoding/archive/2011/10/18/some-reasons-why-my-3d-is-not-working-with-silverlight-5.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-15
        • 2018-06-07
        • 2012-09-02
        • 2021-12-13
        • 1970-01-01
        • 2017-07-31
        相关资源
        最近更新 更多