2012-02-08 2 views
1

私はSilverlightアプリケーションで作業しており、アプリケーションで3Dサポートを使用しようとしています。DrawingSurface描画イベントが発生しません。

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

また、アプリケーションがローカルホスト上で実行されている:私はこのラインで3Dサポートを有効にしているIISを経由して80とこれを許可するように設定3Dの使用の許可を持っています。

私はxamlページにDrawingSurfaceを持っていて、その表面を赤くクリアするDrawイベントがアタッチされています。ドローは発砲しない。だから私は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(); 
     } 
    } 

がDEBUGMODEにチェック、私はのMouseLeftButtonDownイベントが火をないことが判明します。 GraphicsDeviceManager.Current.RenderModeがRenderMode.Hardwareに設定され、Invalidate()メソッドが実行されます。しかし、Drawイベントはまだ起動しません。

特定のポート(50814)で開発者サーバー経由で実行されるtestprojectを作成しました。ここでも、enableGPUAccelerationはtrueに設定され、permissionはAllowに設定されています。このtestprojectはDrawイベントを発生させません。

私の大きなアプリケーションは、enableGPUAccelerationがtrueに設定され、許可が許可に設定されたIISサーバー(localhost:80)で実行されても、Drawイベントが発生しません。 enableGPUAccelerationがtrueに設定され、許可が許可されているポート50814で開発者サーバーを実行している単純なテストプロジェクトでは、Drawイベントが発生します。

私のアプリケーションで3Dを有効にする方法はわかりません。皆さんには何か提案がありますか?

答えて

0

あなたのコードは、それが継続的に動作させるために、一度だけのために働いて描画機能を持っていた、ドローイベントは次のようにする必要があります:

public void drawingsurface_draw(object sender, DrawEventArgs e) 
    { 
    //do some thing here 
    e.InvalidateSurface(); 
    } 
関連する問題