Fade out



  • Ich möchte meinen Dialog langsam verschwinden lassen.Der Dialog verschwindet auch,bloss sind alle Label auf dem Dialog beim verschwinden schwarz.

    private void closetimer_Tick(object sender, EventArgs e)
            {
                if (Opacity == 0.0)
                {
                    closetimer.Stop();
                    Close();
                }
                Opacity -= 0.1;
            }
    


  • Musst mal gucken die Controls auf dem Dialog
    sollten ja auch Opacity als Eigenschaft haben.

    Dann würde ich die zuerst runterdimmen und dann den Dialog selbst!



  • Die Steuerelemente haben keine Opacity.Aber deine Antwort hat mich auf eine Idee gebracht.Ich mache jetzt erst einen Screenshot,setze diesen dann als Hintergrundbild und mache dann die Steuerelemente unsichtbar.

    private void closetimer_Tick(object sender, EventArgs e)
            {
                if (Opacity == 1.0)
                {
                    Bitmap bg_image = new Bitmap(ClientSize.Width, ClientSize.Height);
                    Graphics g1 = Graphics.FromImage(bg_image);
                    Point p = PointToScreen(new Point(Location.X - Left, Location.Y - Top));
                    g1.CopyFromScreen(p.X, p.Y, 0, 0, Size);
                    BackgroundImage = bg_image;
                    picturebox1.Visible = false;
                    label1.Visible = false;
                    button1.Visible = false;
                   label2.Visible = false;
                }
                if (Opacity == 0.0)
                {
                    closetimer.Stop();
                    Close();
                }
                Opacity -= 0.1;
            }
    


  • Oh seh gerad hmm nen Button hat die nicht *Kopfkratz*



  • Diese Proberty habe ich gerade in meiner abgeleitetn Form angelegt

    das ergebnis ermuternt mich

    public double Sichtbarkeit
    		{
    			set
    			{
    				SuspendLayout();
    				Opacity = value;
    				ResumeLayout();
    			}
    			get
    			{
    				return Opacity;
    			}
    		}
    

    teste es bei Dir mal bitte an



  • kann aber auch sein das DEin Timerintervall zu hoch ist hoffentlich hast Du auch darangedacht!

    Ich habe jetzt bei mir nur ein Button der das 2. Form erstellt

    und ein Button der pro Klick dieses Form Dunkler macht

    sowie ein Button der das 2. Form heller macht.

    Und das Ergenis sieht gut aus während der Funktion



  • achtung, der profi spricht:

    setzte als transparency-key deiner form, eine farbe, die nicht auf deiner form vorhanden ist, z.b. lime.

    dann flackerts nicht mehr.

    der profi hat gesprochen.



  • flacker-profi schrieb:

    achtung, der profi spricht:

    setzte als transparency-key deiner form, eine farbe, die nicht auf deiner form vorhanden ist, z.b. lime.

    dann flackerts nicht mehr.

    der profi hat gesprochen.

    Oh wusst ich noch nicht gleich mal antesten. Man lernt nie aus.



  • Bei mir hat das nur dafür gesorgt das der Dialog auch beim Aufbauen geflackert hat.



  • Achtung, der profi spricht

    Mein Krasser Trick sorgt dafür, dass die Form unter Windows immer als layered-windows behandelt wird. Wenn sie keinen Tranparency-Key hat und komplett sichtbar, ist sich kein layered-window. Das Umschalten zwischen normal-window und layered-window führt zum aufflackern.

    Der profi hat gesprochen.


Anmelden zum Antworten