首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DrawingSurface绘图事件不会激发

DrawingSurface绘图事件不会激发
EN

Stack Overflow用户
提问于 2012-02-09 00:04:18
回答 1查看 494关注 0票数 1

我正在开发一个Silverlight应用程序,并尝试在我的应用程序中使用3D支持。我已经用下面这行代码启用了3D支持:

代码语言:javascript
复制
<param name="enableGPUAcceleration" value="true" />

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

我在xaml页面中有一个DrawingSurface,并附加了它的绘图事件,在这个事件中,我只需将表面清除为红色。抽签不会触发。所以我试着让MouseLeftButtonDown上的DrawingSurface失效。下面是一些代码:

代码语言:javascript
复制
        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.Current.RenderMode设置为RenderMode.Hardware,并执行Invalidate()方法。但是,绘制事件仍然不会触发。

我已经创建了一个测试项目,它通过开发人员服务器在特定的端口(50814)上运行。同样,enableGPUAcceleration设置为true,权限设置为Allow。这个测试项目确实触发了绘图事件。

所以..。我的大型应用程序在IIS服务器(localhost:80)上运行,enableGPUAcceleration设置为true,权限设置为Allow,它不会触发绘制事件。一个简单的测试项目在端口50814上运行开发人员服务器,并将enableGPUAcceleration设置为true,并将权限设置为Allow,确实会触发绘制事件。

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

EN

回答 1

Stack Overflow用户

发布于 2012-04-04 01:37:41

您的代码中的绘图函数只工作一次,要使其持续工作,绘图事件应如下所示:

代码语言:javascript
复制
 public void drawingsurface_draw(object sender, DrawEventArgs e)
    {
    //do some thing here
    e.InvalidateSurface();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9196953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档