Visual Studio make form background opacity to .5 - winforms

With Visual Studio, I'm trying to make a form, and the window background I want to have a 50% opacity to. Problem is, if I set the form's opacity to 50% the whole thing goes almost invisible, and if I do the opacity key, well.... The whole window goes invisible.... Any way to make it so the window background has like a 50% opacity, while the content inside has 100% opacity?
Hopefully this makes sense to you guys. Thanks in advance! :)

Related

Need overlapping button in round cornered Winform

Need a quick suggestion for styling a WinForm. I made it with rounded corners even when re-sized. Now trying to add a close button with a image (ControlBox=false), overlapping or clipped to top right corner. This is what I could end with.
But I wish to make it more like in this example image.
How could I achieve this in WinForm.
Here's the trick : your window doesn't just end with the white part. It extends a little bit further. The close button comes under the 'extra' part. The other sides where the window appears to not be there is actually transparent...or in the case of the image, semi-transparent.
The glow effect is provided by the window. Set the TransparencyKey property of the window to Color.Magenta (its a convention as Magenta is the color least likely to be used in a window). Then set the background image to a white background with a little bit of Magenta in the edges. The Magenta will appear transparent when set as the background image.
Fiddle around with TransparencyKey and you'll understand what I mean
Winforms itself cannot provide this for you without outside manipulation of the windows,
because it still uses win32 windows classes in the background.
If you want transparancy in windows: see articles like:
Cool, Semi-transparent and Shaped Dialogs with Standard Controls
And the method in Win32 to do it:
SetLayeredWindowAttributes

Image glimmer or sparkle animation

I've been searching for awhile, but haven't been able to find anything. I'd like to be able to add kind of a glimmer or sparkly animation on an image element in wpf.
Essentially the effect here I'm after here is the same that you get with trading cards that are "foil's".
I'd like to have an image, and then be able to add this animation to it at will. I'm thinking maybe some kind of user control, or template possibly. Hopefully generic enough that I can just toss an image at it and it will just overlay the image and run.
Any ideas?
A simple construction that easily can be turned into a control is by nesting the image in a Grid and adding a second Grid (on top) as a sibling.
De second grid can be given a linear gradient brush that is primarily transparent but does contain a white glimmer.
This brush can be animated; you could move it and change the opacity of the grid/brush.
This way you do not change the image.

silverlight invisible hit area

I would like to know how to make an invisible hit area in silverlight. I have created a UIelement leftmousebuttondown event that calls a planeprojectionfunction(this function rotates the UIelment on its X-axis). However as the element is rotated there is less surface area for the mouse to click on. Any ideas?
Use a canvas and set the opacity to 1%. It will increase CPU usage a little bit (usually not noticeable) but that's a quick and easy approach.
EDIT:
As KeithMahoney pointed out, don't forget to set the background to a brush with some color. Canvas by default does not have a background brush.

Create a fully transparent WPF window to capture mouse events

I'm trying to trap mouse events in WPF by using a topmost, transparent non-modal window. I'm finding that this works fine if the opacity of the window is 0.01 or greater and it has a background color, but when the opacity is set to 0 it no longer receives mouse messages. Is there a way make this window look fully transparent and still get mouse input?
As far as I know, no.
When a Control or Window is fully transparent, it can then be clicked through. This is the case if you set your Window.Background="Transparent", or Opacity="0". As far as I know, this is by design in WPF.
When using an opacity of 0.01, you should barely see the window, if at all. This is likely your best bet at achieving the functionality.
Edit: Another solution, which I tried and does work, is to set the background color to an almost-transparent color. I used Background="#01000000", thus giving an alpha value of 1. This makes your window background transparent-looking, but allows you to place controls on it with the window at full opacity.
In Visual Studio 2010:
Select your window in your design view.
Set the properties of your window to:
AllowsTransparency : check it
Background : Transparent
WindowStyle : None
Just set Background=Brushes.Transparent instead of Background=null.
You don't need to use opacity at all (ie. just leave it at 100% opacity).
For example i think your control name is MyGrid and you want it be Transparent and always get MouseOverEvent.....
If (window AllowsTransparency is True and the window Background is Transparent) Then
use a color like #01777777 for MyGrid Background Or 0.01 for MyGrid Opacity.
Else
use something like #00777777 for MyGrid Background Or 0.00 for MyGrid Opacity.
Setting the opacity to 100% (or any non-zero value), and the background to Transparent (instead of null) should make most controls hittable.
Make sure to set IsHitTestVisible to true. Not all controls can be hit, even if the opacity is 100% and the background is transparent.
You might find it simpler to use Mouse.Capture.
https://msdn.microsoft.com/en-us/library/ms771301.aspx
When an object captures the mouse, all mouse related events are treated as if the object with mouse capture perform the event, even if the mouse pointer is over another object.

DropShadowBitmapEffect Doesn't work on TextBlock

Does anyone know why the DropShadowBitmapEffect and the EmbossBitmapEffect won't work on a TextBlock (not textBOX) in WPF? OuterGlow, Blur and Bevel seem to work fine.
The transparent background brush is apparently not the answer because you can get a dropshadow with a null background brush. The default softness on a dropshadow is 50% and if you have a small font, the softness dissipates the shadow too much. There seems to be a steep drop off around softness of 39% (at which point the shadow more or less disappears). Try setting it to 0 and slowly moving you're way up until you find a number that still shows the shadow.
Yet another note: the softness is definitely a factor, but be aware in Xaml the valid values are really only 0 to 1, but in Blend it shows it as a percentage up to 100. So if you set the value to 100 in Xaml, it will be completely dissipated.
The background brush = transparent solution still may work for the embossing effect
Bitmap effects work by looking at the post-rendered pixels and running standard image manipulation on them. It should only be dependent on the color of the pixels. I wonder if their algorithms don't work well on white. Try changing the color to see if that has an effect -- if it does, you might want to try putting a black panel underneath with drop shadow set on it.
Edit: The questioner found the answer
"Thanks for pointing me in the correct general direction. It wasn't the color of the text or the DropShadow that mattered, what is needed is to make the Background Brush on the TextBlock the Transparent Brush (Alpha = 0) instead of null."
Important Sidenote: you shouldn't really be using BitmapEffects any more. Use the Effect property based on ShaderModel effects introduced in .net 3.5 SP1, it uses hardware rendering and has far better performance.
More Information

Resources