У меня есть довольно хитрый (по крайней мере, для меня), который я потратил много времени, пытаясь выяснить. У меня есть приложение Winform C #. В приложении мне нужно представить несколько веб-страниц друг над другом прозрачным цветом, что позволяет мне размещать веб-страницы друг над другом. Я легко могу сделать это, позволив веб-странице не задавать задний цвет, а затем поместив элемент управления WebBrowser на отдельную WinForm с TransparentcyKey и BackgroundColor, установленными, например, на. белый. Когда я открываю несколько форм, они ведут себя прозрачно, и я получаю необходимый эффект.
Имея кучу открытых форм, на мой взгляд, это довольно грязно, потому что то, что я просто хочу, это нечто вроде контроля. Поэтому моя идея состоит в том, чтобы либо поместить его в UserControl и добавить туда необходимую логику, либо просто наследовать и переопределять функциональность в веб-браузере. Однако UserControl не предоставляет никаких ключей прозрачности, таких как форма, поэтому изначально это тупик. Переопределение WndProc в UserControl для обработки краски, похоже, не имеет никакого эффекта. Это похоже на то, что WebBrowser на самом деле не доступен ни для чего, что, я думаю, как-то связано с тем, что это всего лишь обернутый ActiveX.
В случае, если невозможно получить производный WeBrowser или UserControl с WebBrowser, у кого-нибудь есть какие-либо предложения по поводу того, как я мог бы обрабатывать формы, чтобы они действовали как пользовательские элементы управления в отношении отсечения при размещении их поверх "материнской" формы?
Лучшие тряпки
Франц Томсен