باز شدن فرم با حالتهاي انيميشني!!!
سلام
من دنبال نوشتن برنامه اي هستم كه بتونم فرم رو باانيميشن باز كنم.(البته نه انيميشن هاي ساده!!!!) مثل ورق زدن كتاب.
هر كسي هر پيشنهادي يا نمونه برنامه خوبي داره اگه اينجا بزاره okميشه.
خودم هم چندتا نمونه دارم كه ميزارم.
اينا چندتا لينك نمونه خيلي خوشگلن:(نگاه كنيد حالشو ببريد)
http://www.codeproject.com/KB/miscctrl/animators.aspx
و
http://www.codeproject.com/KB/dialog/walkingrabbit.aspx
وعشق من اين
http://www.codeproject.com/KB/GDI-pl...shDeskPet.aspx
حالشو ببرين با اينا تا بعد....
نقل قول: باز شدن فرم با حالتهاي انيميشني!!!
دوست عزيز يك نگاهي به اين نرم افزار بنداز FlippingBook PDF Publisher
براي برنامه نويسي نيست ولي ميشه باهاش كتاب هاي كه قابليت ورق زدن داره رو ساخت تازه ميتوني به صورت html يا .... ازش خروجي بگيري:قلب:
توي گوگل سرچ كن لينك دانلودش هم هست...
1 ضمیمه
نقل قول: باز شدن فرم با حالتهاي انيميشني!!!
سلام
این نمونه رو خودم الان نوشتم که البته خیلی مقدماتیه ولی راحت میتونی ازش ایده بگیری و تکمیلش کنی و افکتهای دیگه شبیه این رو بسازی .
روش کارش هم اینه که یه بار از فرم عکس میگیره و بعد کنترلها رو مخفی میکنه و کارای لازم رو انجام میده . آخرش دوباره کنترلها رو ب میگردونه .
private void MyEffect1()
{
Image StartBg =this.BackgroundImage;
Bitmap MyBitmap = new Bitmap(this.Width,this.Height);
this.DrawToBitmap(MyBitmap, new Rectangle(0, 0, this.Width, this.Height));
Graphics MyGraphics = Graphics.FromImage(MyBitmap);
this.BackgroundImage = MyBitmap;
foreach (Control C in this.Controls)
{
C.Visible=false;
}
button1.Visible = false;
this.Refresh();
MyGraphics.DrawImage(MyBitmap, 0, 0);
int StartWidth = this.Width;
for (int i = 0; i <= StartWidth; i++)
{
this.Width = i;
this.Refresh();
}
foreach (Control C in this.Controls)
{
C.Visible = true;
}
this.BackgroundImage=StartBg ;
}
این تابع باید در formshow یا بعد از اون قرار داده بشه .
1 ضمیمه
نقل قول: باز شدن فرم با حالتهاي انيميشني!!!
نقل قول: باز شدن فرم با حالتهاي انيميشني!!!
نقل قول:
1]سلام
این نمونه رو خودم الان نوشتم که البته خیلی مقدماتیه ولی راحت میتونی ازش ایده بگیری و تکمیلش کنی و افکتهای دیگه شبیه این رو بسازی .
روش کارش هم اینه که یه بار از فرم عکس میگیره و بعد کنترلها رو مخفی میکنه و کارای لازم رو انجام میده . آخرش دوباره کنترلها رو ب میگردونه .
آفرين.دمت گرم.اتفاقا كاري كه خودم دارم مي كنم همينه.
براهمينه تمام توابع عكس گرفتن از فرم رو درآوردم.(تو برنامه نويس گذاشتم)
وقتي از فرم عكس بگيرين مي تونين هر شكلي خواستين بازش كنيد.
ممنون.لطفيدي.:قلب:
نقل قول: باز شدن فرم با حالتهاي انيميشني!!!
نقل قول:
نوشته شده توسط
arash mehrani
دوست عزيز يك نگاهي به اين نرم افزار بنداز FlippingBook PDF Publisher
براي برنامه نويسي نيست ولي ميشه باهاش كتاب هاي كه قابليت ورق زدن داره رو ساخت تازه ميتوني به صورت html يا .... ازش خروجي بگيري:قلب:
توي گوگل سرچ كن لينك دانلودش هم هست...
ممنون بابت برنامه ات
دانلود کردمش ولی مشکل اینجاست که چجوری واسه برنامه های خودمون از این تکنیک استفاده کنیم؟
1 ضمیمه
نقل قول: باز شدن فرم با حالتهاي انيميشني!!!
سلام
این هم یه افکت دیگه .
Copyright با نقل قول :چشمک:
public static void MyEffect1(Form FormName, int MiliSecondDuration = 300)
{
bool[] Visibles = new bool[FormName.Controls.Count];
int HeightDiff = FormName.Height - FormName.ClientSize.Height;
int WidthDiff = FormName.Width - FormName.ClientSize.Width;
Image StartBg = FormName.BackgroundImage;
Bitmap MyBitmap = new Bitmap(FormName.ClientSize.Width, FormName.ClientSize.Height);
Bitmap MyBitmap2 = new Bitmap(FormName.Width, FormName.Height);
FormName.DrawToBitmap(MyBitmap2, new Rectangle(0, 0, FormName.Width, FormName.Height));
Graphics MyGraphics = Graphics.FromImage(MyBitmap);
FormName.BackgroundImage = MyBitmap;
int i = 0;
foreach (Control C in FormName.Controls)
{
Visibles[i] = C.Visible;
i++;
C.Visible = false;
}
FormName.Refresh();
MyGraphics.DrawImage(MyBitmap2, -WidthDiff, -HeightDiff);
int StartWidth = FormName.Width;
int StartHeight = FormName.Height;
float HtWd = (float)FormName.Height / FormName.Width;
int StartLeft = FormName.Left;
int StartTop = FormName.Top;
DateTime StartTime = DateTime.Now;
FormName.Height = 2;
double Nesbat = 0;
FormName.Top = (int)(StartTop + (StartHeight - (Nesbat * StartHeight)) / 2);
while (Nesbat < 1)
{
Nesbat = (DateTime.Now.Subtract(StartTime).TotalMillisecond s) / MiliSecondDuration;
FormName.Left = (int)(StartLeft + (StartWidth - Nesbat * StartWidth) / 2);
FormName.Width = (int)(Nesbat * StartWidth);
FormName.Opacity = Nesbat;
FormName.Refresh();
Application.DoEvents();
}
StartTime = DateTime.Now;
Nesbat = 0;
while (Nesbat < 1)
{
Nesbat = (DateTime.Now.Subtract(StartTime).TotalMillisecond s) / MiliSecondDuration;
FormName.Top = (int)(StartTop + (StartHeight - (Nesbat * StartHeight)) / 2);
FormName.Height = (int)(Nesbat * StartHeight);
FormName.Refresh();
Application.DoEvents();
}
i = 0;
foreach (Control C in FormName.Controls)
{
C.Visible = Visibles[i];
i++;
}
FormName.Top = StartTop;
FormName.Height = StartHeight;
FormName.Left = StartLeft;
FormName.Width = StartWidth;
FormName.BackgroundImage = StartBg;
FormName.Refresh();
}
public static void MyEffect2(Form FormName, int MiliSecondDuration = 300)
{
int HeightDiff = FormName.Height - FormName.ClientSize.Height;
int WidthDiff = FormName.Width - FormName.ClientSize.Width;
Image StartBg = FormName.BackgroundImage;
Bitmap MyBitmap = new Bitmap(FormName.ClientSize.Width, FormName.ClientSize.Height);
Bitmap MyBitmap2 = new Bitmap(FormName.Width, FormName.Height);
FormName.DrawToBitmap(MyBitmap2, new Rectangle(0, 0, FormName.Width, FormName.Height));
Graphics MyGraphics = Graphics.FromImage(MyBitmap);
FormName.BackgroundImage = MyBitmap;
foreach (Control C in FormName.Controls)
{
C.Visible = false;
}
FormName.Refresh();
MyGraphics.DrawImage(MyBitmap2, -WidthDiff, -HeightDiff);
int StartWidth = FormName.Width;
int StartHeight = FormName.Height;
float HtWd = (float)FormName.Height / FormName.Width;
int StartLeft = FormName.Left;
int StartTop = FormName.Top;
DateTime StartTime = DateTime.Now;
double Nesbat = 1;
while (Nesbat > 0)
{
Nesbat = 1 - (DateTime.Now.Subtract(StartTime).TotalMillisecond s) / MiliSecondDuration;
FormName.Width = (int)(Nesbat * StartWidth);
FormName.Height = (int)(Nesbat * StartHeight);
FormName.Left = (int)(StartLeft + (StartWidth - Nesbat * StartWidth) / 2);
FormName.Top = (int)(StartTop + (StartHeight - (Nesbat * StartHeight)) / 2);
FormName.Opacity = Nesbat;
FormName.Refresh();
Application.DoEvents();
}
foreach (Control C in FormName.Controls)
{
C.Visible = true;
}
FormName.Top = StartTop;
FormName.Height = StartHeight;
FormName.Left = StartLeft;
FormName.Width = StartWidth;
FormName.BackgroundImage = StartBg;
}
این هم نمونه برای بستن و بازکردن فرم با افکت :
نقل قول: باز شدن فرم با حالتهاي انيميشني!!!
سلام
اين برنامه هم فكر مي كنم جالب باشه ،ولي انيميشن هاي ساده اي داره
http://ehsanavr.com/?p=893