我正在开发一个Silverlight应用程序,并尝试在我的应用程序中使用3D支持。我已经用下面这行代码启用了3D支持:
<param name="enableGPUAcceleration" value="true" />此外,该应用程序通过IIS在localhost:80上运行,并且其3D使用权限设置为Allow。
我在xaml页面中有一个DrawingSurface,并附加了它的绘图事件,在这个事件中,我只需将表面清除为红色。抽签不会触发。所以我试着让MouseLeftButtonDown上的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.Current.RenderMode设置为RenderMode.Hardware,并执行Invalidate()方法。但是,绘制事件仍然不会触发。
我已经创建了一个测试项目,它通过开发人员服务器在特定的端口(50814)上运行。同样,enableGPUAcceleration设置为true,权限设置为Allow。这个测试项目确实触发了绘图事件。
所以..。我的大型应用程序在IIS服务器(localhost:80)上运行,enableGPUAcceleration设置为true,权限设置为Allow,它不会触发绘制事件。一个简单的测试项目在端口50814上运行开发人员服务器,并将enableGPUAcceleration设置为true,并将权限设置为Allow,确实会触发绘制事件。
我不知道如何为我的应用程序启用3D。你们有什么建议吗?!
发布于 2012-04-04 01:37:41
您的代码中的绘图函数只工作一次,要使其持续工作,绘图事件应如下所示:
public void drawingsurface_draw(object sender, DrawEventArgs e)
{
//do some thing here
e.InvalidateSurface();
}https://stackoverflow.com/questions/9196953
复制相似问题