Я пытался заставить WebBrowser рисовать на текстуру в XNA 4.0, и я нашел несколько руководств о том, как это сделать. Проблема в том, что когда я пытаюсь это реализовать, меняю ли я свойство Url
или вызываю Navigate()
, он просто не загружает страницу. У меня такое чувство, что я немного не осведомлен о требуемой поточной обработке, поскольку мой проект не запускается как поток STA, поэтому я создаю отдельный поток для запуска веб-браузера и рендеринга в растровое изображение.
Вот как я начинаю:
public void LoadTexture(GraphicsDevice gfx, ContentManager content, string filename, float duration = -1f)
{
this.gfx = gfx;
this.filename = filename;
this.duration = duration;
_resetEvent = new AutoResetEvent(false);
Thread thread = new Thread(GetWebScreenshot);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
_resetEvent.WaitOne();
}
А вот и GetWebScreenshot
:
* * 1010
Свойство ReadyState
никогда не меняется с Uninitialized
, я также пытался использовать событие DocumentReady
, и оно никогда не срабатывает. Я также пробовал Join()
вместо AutoResetEvent
, но, похоже, ничего не работает.