DrawingSurface Draw событие не срабатывает - PullRequest
1 голос
/ 08 февраля 2012

Я работаю над приложением Silverlight и пытаюсь использовать поддержку 3D в своем приложении.Я включил поддержку 3D с помощью этой строки:

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

Кроме того, приложение работает на локальном хосте: 80 через IIS, и для этого разрешения для использования 3D установлено значение Разрешить.

У меня естьDrawingSurface на странице xaml и прикрепил его событие Draw, в котором я просто очищаю поверхность красным цветом.Ничья не стреляет.Поэтому я попытался аннулировать DrawingSurface на MouseLeftButtonDown.Вот некоторый код:

        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 ().Но событие Draw по-прежнему не запускается.

Я создал тестовый проект, который запускается через сервер разработчика на определенном порту (50814).Снова, enableGPUAcceleration установлено в true, а разрешение было установлено в Allow.Этот тест-проект запускает событие Draw.

Итак ... мое большое приложение, работающее на сервере IIS (localhost: 80) с параметром enableGPUAcceleration, установленным в значение true, и разрешением, установленным в значение Allow, не запускает событие Draw.Простой тестовый проект, выполняющий сервер разработчика на порту 50814 с параметром enableGPUAcceleration, установленным в значение true, и разрешением Allow запускает событие Draw.

Я не знаю, как включить 3D для моего приложения.Ребята, у вас есть предложения?!

1 Ответ

0 голосов
/ 03 апреля 2012

в вашем коде функция рисования работала только один раз, чтобы она работала непрерывно, событие рисования должно выглядеть следующим образом:

 public void drawingsurface_draw(object sender, DrawEventArgs e)
    {
    //do some thing here
    e.InvalidateSurface();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...