PDA

View Full Version : سوال: محو شدن تدریجی یک کنترل



kamran00f
سه شنبه 23 شهریور 1389, 16:21 عصر
دوستان چطور می تونم یک کنترل رو به صورت تدریجی از روی فرم محو کنم؟ مثلا یک تکست باکس روی فرم گذاشتم و میخوام وقتی روی باتن کلیک میکنم در عرض 2 ثانیه اون محو شه.

میدونم که باید از یه تایمر استفاده کنم ولی نمی دونم چطور باید بگم که این تکست باکس نیمه شفاف بشه قبل از اینکه visible = false; بشه.

با تشکر از شما دوستان

s.khoshfekran
سه شنبه 23 شهریور 1389, 16:36 عصر
http://stackoverflow.com/questions/1086621/drawing-a-transparent-button-in-c-winforms
http://forums.techarena.in/software-development/1080276.htm

kamran00f
سه شنبه 23 شهریور 1389, 17:51 عصر
http://stackoverflow.com/questions/1086621/drawing-a-transparent-button-in-c-winforms
http://forums.techarena.in/software-development/1080276.htm


ممنون از کمکت ولی اینا فقط دارن نشون میدن که چطور میشه به یک باتن (یا هر کنترل دیگه) به بک گراند ترنس پرنت داد. ولی من میخوام کنترل مورد نظرم مثل یک انیمیشن کم کم محو شه. درست مثل کاری که این کد برای بسته شدن یک فرم انجام میده



Utility ClosingForm = new Utility();

ClosingForm.FadeOutClosingForm(this);


که البته این کد رو از همین سایت برنامه نویس پیدا کردم. من میخوام یه همچین عملی در مورد مثلا یه تکست باکس انجام شه.

flash118
سه شنبه 23 شهریور 1389, 18:28 عصر
با سلام و عرض ادب
دوست عزیز نمونه زیر رو یه نگاهی کن فکر میکنم جواب سئوالتون اینجا پیدا کنید
منبع :کد پراجکت

s.khoshfekran
سه شنبه 23 شهریور 1389, 18:30 عصر
میتونی میزان Transparency رو تو یه حلقه کم کنی بعدش با متد Refresh
رویداد Paint رو قراخوانی کنی
البته دقیق نمی دونم!!

mehrdad.h
چهارشنبه 24 شهریور 1389, 14:41 عصر
سلام دو.ست عزيز از اين كد ميتوني استفاده كني :


this.Opacity = 1;
for (int i = 0; i < 2000; i++)
{
this.Opacity -= 0.000800;
Application.DoEvents();

}

Saman_12
چهارشنبه 24 شهریور 1389, 15:47 عصر
سلام دو.ست عزيز از اين كد ميتوني استفاده كني :


this.Opacity = 1;
for (int i = 0; i < 2000; i++)
{
this.Opacity -= 0.000800;
Application.DoEvents();

}

دوست عزیز این کد خیلی ابتدایی هست و از ابتدایی بودنش هم بگزریم ایشون میخوان یک کنترل مثل باتون و یا پنل رو محو کنند نه خود برنامه رو.

kamran00f
پنج شنبه 08 مهر 1389, 22:46 عصر
دوست عزیز این کد خیلی ابتدایی هست و از ابتدایی بودنش هم بگزریم ایشون میخوان یک کنترل مثل باتون و یا پنل رو محو کنند نه خود برنامه رو.

خوش بختانه ایشون منظور منو دقیق متوجه شدن و جوابای دیگه به شوال من مربوط نبودن. البته بازم از شما دوستانی که جواب دادید ممنونم. بالاخره باید یه روشی برای نوشتن این جور برنامه ها با گرافیک بالا با سی شارپ باشه که کنترل ها محو شن و این جور جنگولک بازیا رو داشته باشه!

kamran00f
پنج شنبه 08 مهر 1389, 22:50 عصر
میتونی میزان Transparency رو تو یه حلقه کم کنی بعدش با متد Refresh
رویداد Paint رو قراخوانی کنی
البته دقیق نمی دونم!!

متاسفانه مسئله اینه که خاصیت Transparency مخصوص فرم هست نه کنترل ها مثل تکست باکس

kamran00f
جمعه 05 آذر 1389, 13:42 عصر
یعنی واقعا تو محیط دات نت همچین چیزی قابل انجام نیست ؟! من خیلی شک دارم نشه!

sia_2007
جمعه 05 آذر 1389, 15:37 عصر
Storyboard storyBoard = new Storyboard();

storyBoard.Completed += (sBoardSender, sBoardArgs) =>
{
MessageBox.Show("The button has been disapear !");
btnMain.Visibility = System.Windows.Visibility.Collapsed;
// OR
btnMain.IsEnabled = false;
};

// 1.0 to 0.0 in 3 seconds !!!
DoubleAnimation animationTime = new DoubleAnimation(1.0, 0.0, TimeSpan.FromSeconds(3));


// We want to go from 1.0 UIElement.OpacityProperty to 0.0 UIElement.OpacityProperty
Storyboard.SetTargetProperty(animationTime, new PropertyPath(UIElement.OpacityProperty));

storyBoard.Children.Add(animationTime);

storyBoard.Begin(btnMain, false);
البته این کد مبتنی بر Direct X هستش؛ و انتظار اجراش رو تو بقیه پلتفرم ها نداشته باشین.
مگه این که این کد رو تو SL بنویسین؛ اون وقت تو پلتفرم های معروف میتونید ازش پشتبانی کنین


Supported Platforms : Windows ( 98 - 7 ) Linux Mac OS , Win Mobile , Some Nokia Phones