C # прозрачная граница для формы без полей - PullRequest
5 голосов
/ 03 мая 2011

Я создаю форму без полей и хочу добавить к ней настраиваемую рамку. Однако, когда я добавляю фон для формы, он плохо отображается и не прозрачен.

Это то, что я хочу использовать в качестве моей границы. Screenshot

Когда я устанавливаю прозрачность формы для белого, тень исчезает, я не уверен, что делать.

Ответы [ 2 ]

6 голосов
/ 03 мая 2011

Существует способ использовать полупрозрачное (альфа) изображение в качестве фона формы в WinForms, как описано в этой статье: Прекрасный настольный питомец золотой рыбки (с использованием альфа-PNG и GDI +) .

Он использует встроенное взаимодействие для смешивания изображения с рабочим столом.

Кроме того, проверьте Функция UpdateLayeredWindow (User32.dll) на pinvoke.net .Есть также пример, как его использовать.

[Редактировать]

На pinvoke.net есть также ссылка на статью блога Майка Свансона о той же теме.Он использует тот же код, который описан в упомянутых ссылках, но это проект VS, который делает именно то, что хочет OP: всплывающая форма с полупрозрачным изображением PNG в качестве фона.

2 голосов
/ 05 мая 2011

Хорошо, поэтому я немного обманул, но я просто переопределил CreateParams, чтобы рисовать тени, даже если это окно без границ. Это именно то, что я хотел, поэтому я пошел с этим.
Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...