I have a transparent form, on which I need to place a semi-transparent panel. I've gotten the panel to be semi-transparent relative to the form's color, but whenever I set the form to transparent, that semi transparency stops working. It seems it is only blending the color with the color of the control behind it, but when the form is transparent it doesn't do so with any windows that may be behind the form.
Is there any way this can be achieved? I'm not sure if I should be overwriting the form's paint method, the control's, or both.
Any help is appreciated! Thanks!
Related
I have a transparent form in C# and on top of the form I have a splashscreen picturebox with an image. The form's backcolor is actually just Control gray. I also just set the form's transparencykey to Control gray as well. I used the tutorial here to make the form transparent: How to design a cool semi transparent splash screen?
The image is stretched over the picturebox to make it fit nicely on all computer screen resolution. Here is the original image, notice that it has a transparent left side with squares which does not have any borders.
OriginalImageInPhotoshop
However afterwards, the form has these ugly borders on the left side of the image that are the same color as the backcolor & transparencykey (in this case, Control gray). If I place the form over a black background, you can quite visibly see this. How can I get rid of this?
Problem
So far, only remedies I have found is to either not have the image set to stretch in the picturebox (but that would cause it to appear different on every computer screen!) or perhaps theres another way to make a form transparent...
Well I was doing this setting the TransparencyKey same as BackColor, but doesn't makes totally transparent, here a pic:
How to make the form totally transparent to set the BackgroundImage a transparent Back-Colored .png?
Hope someone could help me (I've had this doubt for so long)
Thanks.
The TransparencyKey should be a color on the background image, not a color on the form itself. So you can't set the TransparencyKey to the form's BackColor since the form is not its own background image.
It's been a very long time I read it but I'll post a reference link as I've found it. It's on MSDN, I believe.
how to make any control of win application transparent. i want that i will assign a background image for the target control and will invoke a routine and that routine will create that control transparent in such a way that only image will visible. as a example suppose image has assign to picture box. the picture shape is not square rather irregular. if i can make picture box transparent then user will see the image only. basically i want to make a picture box or any control irregular shape. how to achieve it through code in c#.
thanks
In WPF, transparency is quasi for free. For the image-element, assign a png-image with an alpha mask and the image will be rendered with active transparency.
For controls with an solid background, you generally have to set the Background to a transparent Brush:
If you want to make a whole window partial transparent, you have to remove the border, set the window style to none, set the background brush to a transparent brush, and set the AllowsTransparency-property of the window to true.
there is one for ordinary winform at
http://www.youtube.com/watch?v=K_JzL4kzCoE
Question:
How do I scrape what a transparent panel shows into a bitmap?
Background:
I need to make a form that sits on top of everything and blurs part of the screen but doesn't stop the user from interacting with it. Odd... I know.
I created a form and added a panel to it. I then set the set background color of the panel to red. Then set the form's TransparentKey property to red and topmost = True.
So now I have a transparent panel. Cool. I can interact with the app below it. Cool. Now I just need to add the blur. I would like to take what is showing on panel1 and blur it then display on panel2 that sits over the top of panel1. Or at least that is the idea.
Important detail:
DrawToBitmap() just shows the red background.
This is running on XP.
Yes, DrawToBitmap(). But not on the transparent panel, on the one that's underneath it. If that 'panel' isn't actually yours then you have to use Graphics.CopyFromScreen().
Not sure what you intend to do with it, but drawing the blurred image in the transparent panel will make it non-transparent and you cannot interact with the underlying window anymore. Also, don't use Red, you'll get unintended transparency if the underlying window contains any red. Color.Fuchsia is a good choice, it is a fuchsed-up color.
Here's what I have in VERY simple easy to grasp terms.
My form background is Blue.
I created a gradient image from white to the Blue from the form background. This is to give the form a nice gradient look. I added a picturebox to my Form and set this image as the Image.
I added a picturebox with a Logo on top of the gradient Picturebox, but it's 'grabbing' the Form background color and not respecting the transparent background image I wanted it to grab.
So:
Blue Form -> Huge pictureBox with gradient -> Small picturebox thats supposed to respect the gradient.
Help please!
I think this might be as the PictureBox is not a control container. So this implies that when you drag the button picture box onto the main picture box, it is not actually a child of the picturebox, but rather of the form.
You would notice that if you were to do he same with a panel (set the form blue, panel background image, and place the button picture box control on the panel) it would show transparent to the panel control.
Why not rather set the Form BackgroundImage, avoid the Huge Picture Box, and set the small picture box on the form itself.