В приложении WPF (C#) одним из элементов является окно Win32, созданное путем переопределения класса HwndHost. В WPF есть примерно 10 экземпляров этого окна Win32 в WPF. Нужно полностью отобразить (отлично работает), а другой 9 должен показывать только предварительные просмотры, не создавая окна Win32, просто растровое изображение.Окно Paint Win32 в файл
Я пытался найти способ генерации указанного растрового изображения. Пробовал много разных вещей, но пока ничего не было сделано. Основная проблема, с которой я сталкиваюсь, заключается в том, что HwndHost.WndProc вызывается только при видимом окне.
Я могу сделать снимок экрана из видимого окна, сделать его в памяти и создать растровое изображение. Мне просто нужно сделать какой-то способ, пока окно не видно.
Мое понимание все еще довольно нечеткое, поэтому оценивается любое понимание.
Вы говорите, что HwndHost.WndProc вызывается только тогда, когда окно отображается на экране или только после того, как окно было показано на экране хотя бы один раз? Вероятно, дескриптор окна не создается до первого показа окна. Если окно (или его родительское) скрыто или сведено к минимуму после его показа, вы все равно должны получать сообщения в wndproc. – dthorpe
Пока окно не появится на экране в первый раз. Можно ли нарисовать это окно в памяти до его отображения? Или, возможно, обходной путь будет появляться в новом окне, Show(); Скрыть(); Тогда попытайтесь нарисовать? – mkocubinski
Оставьте теги типа «C#» в тегах и не используйте их. Это избыточно. –