473,325 Members | 2,816 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,325 software developers and data experts.

(C#) Opacity - Animation

Atran
319 100+
Hello EveryBody, I write this code but the code not work:

Expand|Select|Wrap|Line Numbers
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8.  
  9. namespace WindowsApplication1
  10. {
  11.     public partial class Form1 : Form
  12.     {
  13.         public Form1()
  14.         {
  15.             InitializeComponent();
  16.             //Set the form opacity = 0.
  17.             this.Opacity = 0.00;
  18.             for (double i = 0.00; i < 1.01; i = i + 0.01)
  19.             {
  20.                 //Make the form opacity a motion.
  21.                 this.Opacity += i;
  22.                 if (this.Opacity.Equals(1.00) == true)
  23.                 {
  24.                     break;
  25.                 }
  26.             }
  27.         }
  28.     }
  29. }
  30.  
Can anyone help me?
--------------------------------
And how I can do an animation using C# (If you can give me an example).
Thanks for anyhelp.
Jun 6 '07 #1
16 7424
Plater
7,872 Expert 4TB
What do you want this to do? because that will execute WAY to fast for you to see
Jun 6 '07 #2
TRScheel
638 Expert 512MB
What do you want this to do? because that will execute WAY to fast for you to see
That and the check for opactiy.equals is redundant
Jun 6 '07 #3
Atran
319 100+
What do you want this to do? because that will execute WAY to fast for you to see
Hello, When I write:

Expand|Select|Wrap|Line Numbers
  1.   this.Opacity = 0.00;
  2.  
The form be invisible (it works but cant see).
So I want to be a motion tween, I mean when I run my app:
I want the form Opacity = 0.
and three after three grow to the opacity, I mean:

Expand|Select|Wrap|Line Numbers
  1. this.Opacity = 0.00;
  2. this.Opacity = 0.03;
  3. this.Opacity = 0.06;
  4. this.Opacity = 0.09;
  5. this.Opacity = 0.12;
  6. //.................To 1.00
  7. //So I want this like animation from "0.00 to 1.00".
  8.  
Thanks for anyhelp.
Jun 6 '07 #4
TRScheel
638 Expert 512MB
Hello, When I write:

Expand|Select|Wrap|Line Numbers
  1.   this.Opacity = 0.00;
  2.  
The form be invisible (it works but cant see).
So I want to be a motion tween, I mean when I run my app:
I want the form Opacity = 0.
and three after three grow to the opacity, I mean:

Expand|Select|Wrap|Line Numbers
  1. this.Opacity = 0.00;
  2. this.Opacity = 0.03;
  3. this.Opacity = 0.06;
  4. this.Opacity = 0.09;
  5. this.Opacity = 0.12;
  6. //.................To 1.00
  7. //So I want this like animation from "0.00 to 1.00".
  8.  
Thanks for anyhelp.
Add something like

Expand|Select|Wrap|Line Numbers
  1. Thread.Sleep(1000);
between each change. It will add 1000 milliseconds ( or 1 second ) between each change. This will mean that at .01 change, it will take 100 seconds to go from invisible to visible, so I might suggest lowering it.
Jun 6 '07 #5
Atran
319 100+
Add something like

Expand|Select|Wrap|Line Numbers
  1. Thread.Sleep(1000);
between each change. It will add 1000 milliseconds ( or 1 second ) between each change. This will mean that at .01 change, it will take 100 seconds to go from invisible to visible, so I might suggest lowering it.
Thanks very much....
Jun 6 '07 #6
Atran
319 100+
But can anyone till me how to create a simple animation?
example: In my form I have a basic line.
So I want to make a tween motion to the line, I mean make the line move from a position to another position (make animation for the line).
Thanks for anyhelp.
Jun 6 '07 #7
Plater
7,872 Expert 4TB
DirectX I think is what you want. TR can probably help you better as I've never used it.

If you wanted just static pictures, you could play with the Graphic object in the Paint functions
Jun 6 '07 #8
Atran
319 100+
DirectX I think is what you want. TR can probably help you better as I've never used it.

If you wanted just static pictures, you could play with the Graphic object in the Paint functions
Thanks.......................
Jun 6 '07 #9
TRScheel
638 Expert 512MB
DirectX I think is what you want. TR can probably help you better as I've never used it.

If you wanted just static pictures, you could play with the Graphic object in the Paint functions

Actually you can use window's inherit graphics to do something simple like the line drawing. You just need to force a redraw, which is semi-redundant. The problem with the windows GDI for drawing is that if I say draw a line on my form, and then move IE over my form, then look at my form again, the line wont be there anymore unless I force a redraw. The issue is that you need to capture when and how to redraw, and know that the GDI is very... very... slow in comparison to say DirectX. Slow enough that expecting 60 - 100 updates per second on anything more complicated then say... a line... is probably not going to happen. Which is fine for your purposes, and in all reality you probably only need about 30 fps, if not less considering they are not going to notice the jumps if we lowered it to 10 fps and the line grew at a slow enough speed.

And to be honest, DirectX is overkill for a simple line.


I have to work on a few machines around this building, but when I get back I will throw up a code snippet showing how to do it.
Jun 7 '07 #10
Atran
319 100+
Actually you can use window's inherit graphics to do something simple like the line drawing. You just need to force a redraw, which is semi-redundant. The problem with the windows GDI for drawing is that if I say draw a line on my form, and then move IE over my form, then look at my form again, the line wont be there anymore unless I force a redraw. The issue is that you need to capture when and how to redraw, and know that the GDI is very... very... slow in comparison to say DirectX. Slow enough that expecting 60 - 100 updates per second on anything more complicated then say... a line... is probably not going to happen. Which is fine for your purposes, and in all reality you probably only need about 30 fps, if not less considering they are not going to notice the jumps if we lowered it to 10 fps and the line grew at a slow enough speed.

And to be honest, DirectX is overkill for a simple line.


I have to work on a few machines around this building, but when I get back I will throw up a code snippet showing how to do it.
Thanks TRScheel...........
Jun 7 '07 #11
TRScheel
638 Expert 512MB
Sorry about not getting this up yesterday, ended up having a hell of a machine to do. Anyways...

Read through this and see if you understand whats going on.

I also suggest commenting out the

Expand|Select|Wrap|Line Numbers
  1. this.Invalidate()
line and observing the differences. It will ONLY redraw the line if ou minimize the form and then bring it back up. Invalidating it when we change the size of counter forces a redraw.

The onClosing is merely so the counter thread dies happily.

Expand|Select|Wrap|Line Numbers
  1.     public partial class Form1 : Form
  2.     {
  3.         public int counter = 0;
  4.         public readonly int maxCounter = 250;
  5.  
  6.         public Form1()
  7.         {
  8.             System.Threading.Thread thread = new System.Threading.Thread(Incrementer);
  9.             thread.Start();
  10.  
  11.             this.Paint += new PaintEventHandler(Form1_Paint);
  12.             this.FormClosed += new FormClosedEventHandler(Form1_FormClosed);
  13.  
  14.             InitializeComponent();
  15.         }
  16.  
  17.         void Form1_FormClosed(object sender, FormClosedEventArgs e)
  18.         {
  19.             counter = maxCounter + 1;
  20.         }
  21.  
  22.         void Form1_Paint(object sender, PaintEventArgs e)
  23.         {
  24.             e.Graphics.DrawLine(new Pen(Color.Blue), new Point(10, 10), new Point(10 + counter, 10));
  25.         }
  26.  
  27.         void Incrementer()
  28.         {
  29.             while (counter < maxCounter)
  30.             {
  31.                 counter++;
  32.                 this.Invalidate();
  33.                 System.Threading.Thread.Sleep(10);
  34.             }
  35.         }
  36.     }
Jun 8 '07 #12
TRScheel
638 Expert 512MB
On a side note, I have heard that you should also call Update() with the Invalidate() call, but I cannot seem to find out why... it draws just fine with the invalidate.
Jun 8 '07 #13
Atran
319 100+
Thanks for your help........
Jun 8 '07 #14
Plater
7,872 Expert 4TB
On a side note, I have heard that you should also call Update() with the Invalidate() call, but I cannot seem to find out why... it draws just fine with the invalidate.
It should draw fine with just the Update() call too?
Invalidate only invalidates a section of it right? Update is just a blanket refresh I believe.
Jun 11 '07 #15
TRScheel
638 Expert 512MB
It should draw fine with just the Update() call too?
Invalidate only invalidates a section of it right? Update is just a blanket refresh I believe.
I looked it up, and you have it backwards.

Invalidate() redoes the entire control.
Update() only updates the changed areas.

IMHO, I would think Invalidate() would be... safer... then Update() because I don't exactly trust the underlying code to accurately decide what needs to be updated or not. In addition, any sort of graphics oriented form should have the entire form redrawn when pushed to the screen.
Jun 11 '07 #16
TRScheel
638 Expert 512MB
It should draw fine with just the Update() call too?
Invalidate only invalidates a section of it right? Update is just a blanket refresh I believe.
Researching some more I found this:

'The Invalidate method governs what gets painted or repainted. The Update method governs when the painting or repainting occurs. If you use the Invalidate and Update methods together rather than calling Refresh, what gets repainted depends on which overload of Invalidate you use. The Update method just forces the control to be painted immediately, but the Invalidate method governs what gets painted when you call the Update method.'

off the MSDN
Jun 11 '07 #17

Sign in to post your reply or Sign up for a free account.

Similar topics

3
by: Marek Mänd | last post by:
This posting will express my concern about the future of css3 forthcoming recommendation. I think for long time now, that the current implementation of CSS attribute opacity is less than usable...
2
by: Frank Rizzo | last post by:
I have a little animation where I fade out the form by manipulating its opacity. However, the screen seems to flicker just a little bit. Are there any tricks to making the form disappear...
5
by: Webmaster | last post by:
The following style sets the opacity or semi-transparency in Mozilla and Explorer browsers for an image: #myImage{ filter: alpha(opacity=50); -moz-opacity:0.50; opacity: 0.50; } <img...
1
by: mhoeneveld | last post by:
I am writing a small script to fade the opacity of an image/object. The script itself works fine only I do have some unwanted behaviour. I do use a tablecell object and the mouseover/mouseout to...
3
by: Cico1 | last post by:
sorry another one problem here... i have ink which points to this function: opacty= 0 function opacOff() { opacty+=10; document.getElementById('m').style.filter = "alpha(opacity="+...
16
by: Darko | last post by:
Hi, I'm trying to get and set an element's opacity, but I'm stuck with, what a hell of surprise, Internet Explorer. As for getting the element's opacity, I have the following (not working) lines...
15
by: Sunny | last post by:
Hi, I can change the lement opacity in IE using. abc.style.filter = 'alpha(opacity=' + 10 + ')'; But this dont work in firefox, In firefox it throws error. How I can change the opacity of an...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.