DrawingSurface Draw事件不启动

本文关键字:启动 事件 Draw DrawingSurface | 更新日期: 2023-09-27 18:23:59

我正在开发Silverlight应用程序,并尝试在我的应用程序中使用3D支持。我已经启用了这条线的3D支持:

<param name="enableGPUAcceleration" value="true" />

此外,该应用程序通过IIS在localhost:80上运行,并且其3D使用权限设置为Allow。

我在xaml页面中有一个DrawingSurface,并附加了它的Draw事件,在该事件中,我只需将曲面清除为红色。Draw不会触发。因此,我尝试使鼠标左键向下的DrawingSurface无效。这里有一些代码:

        private void TestDrawing_Draw(object sender, System.Windows.Controls.DrawEventArgs e)
    {
        GraphicsDeviceManager.Current.GraphicsDevice.Clear(new Microsoft.Xna.Framework.Color(255, 0, 0));
    }
    private void TestDrawing_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        if (GraphicsDeviceManager.Current.RenderMode == RenderMode.Hardware)
        {
            TestDrawing.Invalidate();
        }
    }

在调试模式下检查时,我发现MouseLeftButtonDown事件确实启动了。GraphicsDeviceManager.CurrentRenderMode设置为RenderMode.Hardware,并执行Invalidate()方法。但是,Draw事件仍然没有启动。

我创建了一个测试项目,它通过特定端口(50814)上的Developer服务器运行。同样,enableGPUAcceleration设置为true,permission设置为Allow。此测试项目确实启动Draw事件。

所以。。。我的大型应用程序在IIS服务器(localhost:80)上运行,enableGPUAcceleration设置为true,权限设置为Allow,不会触发Draw事件。一个简单的测试项目在端口50814上运行Developer服务器,enableGPUAcceleration设置为true,permission设置为Allow,会触发Draw事件。

我不知道如何为我的应用程序启用3D。你们有什么建议吗?!

DrawingSurface Draw事件不启动

您的代码只让draw函数工作一次,为了使其连续工作,draw事件应该是这样的:

 public void drawingsurface_draw(object sender, DrawEventArgs e)
    {
    //do some thing here
    e.InvalidateSurface();
    }