Hello,
I'm using NetAdvantage for WinForms 2008.2. I'd like to know if it is possible to create a semitransparent overlay like the one Vista uses for UAC, or websites use for dialogs or lightboxes. More precisely, I want to have such an overlay on my form while it loads quite a lot of data, and show a progress bar. I want the controls on the form to be visible through the overlay, which would have 50% opacity.
I tried using the CreationFilter described here http://forums.infragistics.com/forums/p/14709/54938.aspx, but I could only get the whole form to be transparent. I didn't find any control I could set the opacity on. BackColor Transparent only inherits the BackColor of the parent, controls are not visible through a panel or label, so that doesn't help.
Of course, this isn't essential to the application, I just thought it would be a welcome addition to the interface. I'm not sure this can be done.
I'm not sure if this can be done, since .NET transparency is implemented by walking up the parent chain to resolve the appearance, as you've noticed. If you're on Vista, you could do something like extend the glass into the client area and control the degree of blur that is shown on the window, but not sure if there is any other route you could take.
-Matt
Just as a point of detail, did you mean that you want some sort of window to fill the entire screen, such as the portion of the UAC prompt where the rest of the screen has a translucent grey painted over it, and you show an additional dialog? I was confusing this with simply doing the glass portion of the dialog. If this is the case, you may be able to show a maximized form without the caption and set the Opacity of the form as appropriate, and then show your own modal dialog/screen on top of that so the user can't click on the translucent form.
Hi Matt,
We, me and Cosmin, are trying to find a better way to tell the user he has to wait until the fields on the form is populated with data. The solution I had was to disable the controls and then reenable them, so s/he cannot interact with the form during data loading. But I don't like it.
Working on Vista for a while now I had the idea to display a translucent layer over all controls on the form and something on that layer to show that something is happening. This way the user can see the data being populated in the grids, combo boxes and text boxes below.
Adapting you suggestion to my idea, I will try to create a translucent borderless modal form that will have the size of the original form and place it over the working form. Hope this will work. It seems plausible. Thanks.
Emanuel