2011-02-03 4 views
3

Я работаю с не WPF-приложением, поэтому могу создавать пользовательские элементы управления WPF. Моя работа для этого заключалась в том, чтобы просто создавать мои окна как usercontrols, а затем я создал общую winform для размещения пользовательского управления wpf (используя ElementHost) для имитации окна wpf.ElementHost - пустой при повторном открытии окна

Все работает отлично на моей машине dev (WinXP VM), но на клиентских машинах (VM и Physical, как Windows 7) окна будут открываться один раз и работать нормально. Однако, когда он закрывает их, а затем снова открывает, они просто пустые белые. Окна закрываются и удаляются после каждого закрытия (то же самое произошло, даже если я оставил их в памяти). Клиент должен закрыть приложение и снова запустить его, чтобы снова увидеть окна.

Я пробовал добавлять вызовы обновления и то, что не использует elementhost, но ничего не работает. Есть идеи?! Это происходит в каждом окне.

+0

Почтовый код, который воспроизводит проблему. –

+0

Не так много, просто ElementHost.Child = new WPFUserControl(); как я уже сказал, он имеет эту проблему со всеми пользовательскими элементами управления, но только на окнах 7 –

ответ

3

Извините, что опубликовано это как ответ, так как у меня пока нет прав просто комментировать. Но у меня есть некоторые вопросы или возможные направления для изучения.

Вы пробовали посмотреть, что происходит, добавив отладчик? Он все еще получает входные события или перерисовывает события, или он висел? Ваш пользователь WPF контролирует даже загрузку при повторном открытии окна? О, и не забудьте также исключить первые случайные исключения, возможно, это проблема с WPF + CLR, и у нее даже нет возможности снова загрузиться.

Помогает ли Spy ++ что-либо сообщить о дочерних окнах, которые могут рассказать вам, что происходит?

О, и это происходит только на его коробке с Win 7 или же она воспроизводится в другом месте?

Другое дело, что произойдет, если вы просто создадите простой пользовательский элемент управления и сделаете то же самое? Он воспроизводится?

Он воспроизводится, если это просто содержимое страницы, а не в новом окне?

Попробуйте что-то простое, как эта статья, которую я только что нашел во время поиска, чтобы узнать, есть ли у кого-либо еще эта проблема. http://www.switchonthecode.com/tutorials/wpf-tutorial-using-wpf-in-winforms

+0

Вот старая статья о gotchas для взаимодействия между ними. Интересно, может ли быть проблема с диспозицией, о которой они говорят. http://blogs.msdn.com/b/scoberry/archive/2006/09/01/735844.aspx –

+0

На этой странице также упоминаются проблемы с Win 7. По какой-то причине это сработало для них, когда элемент управления WPF находился в отдельная dll. http://myramserialize.blogspot.com/2010/03/winformswpf-interop-elementhost-not.html –

+0

Еще одна находка, прежде чем я просто жду ваших комментариев по любому из этих. Я нашел это в отношении ваших окон, возможно, это может быть еще одна вещь, о которой стоит заглянуть, речь идет о полосах прокрутки, но напомнила мне о вашей проблеме: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6f88715b-b9ca-4d4f-974b-97b334d26347/ –

Смежные вопросы