简体   繁体   中英

C# transparent border for borderless form

I'm creating a borderless form and I want to add a custom border to it. When I add the background for the form however, it doesn't show well, and it is not transparent.

This is what I want to use as my border.:截屏

When I set the Form's transparency for White the shadow disappears, I'm not sure what to do.

There is a way to use a semi-transparent (alpha) image as the form background in WinForms, as described in this article: A lovely goldfish desktop pet (using alpha-PNG and GDI+) .

It uses native interop to blend the image with the desktop.

Also, check out UpdateLayeredWindow function (User32.dll) on pinvoke.net . There is also an example how to use it.

[Edit]

There is also a link on pinvoke.net to Mike Swanson's blog article about the same subject. It uses the same code as described in mentioned links, but it's a VS project which does exactly what OP wants: a splash form with a semitransparent PNG image as a background.

Okay so I cheated a bit but what I did was simply overriding the CreateParams to draw dropshadow even though it's a borderless window. It does exactly what I wanted so I went with it.
Thanks for all the help!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM