PDA

View Full Version : ایجاد یک صفحه مات برای غیرفعال کردن کنترل های صفحه (؟)



AlgorithmX
دوشنبه 20 تیر 1390, 00:00 صبح
Hi!
در بعضی برنامه ها زمانی که برنامه پیغامی رو به کاربر ارسال می کنه یا .. صفحه ماتی (حالا به هر رنگی) به شکل زیبایی ظاهر میشه و کل برنامه رو می پوشونه که باعث غیرفعال کردن کنترلهای اون فرم میشه و برنامه . حالا چطوری می تونم یکی از اینها رو بسازم و هر وقتی روی (مثلا:) یک باتن کلیک کردم اون لایه ظاهر بشه و همه کنترل ها به غیر از اونی رو که می خوام رو غیر فعال کنه؟!

AlgorithmX
دوشنبه 20 تیر 1390, 02:49 صبح
این ابزار رو یکی توی مایکروسافت طراحی کرده بود البته با سیلورلایت ساخته شده اما این رو فقط گذاشتم که منظورم رو بفهمید:

http://gallery.expression.microsoft.com/RoundedBusyIndicator
دکمه Download Sample


البته نمونه بازر این کار در همین سایته! (وقتی می خواهید عکسی رو آپلود کنید محل نوشتار مات میشه که یعنی غیر فعاله!)

مهدی فرزاد
دوشنبه 20 تیر 1390, 08:18 صبح
سلام

این کار رو شما میتونید بشکل زیر انجام بدید
اول یک Panle روی با حالت شیشه ای ولی رنگ دل خواه روی فرم بگذارید که فرم رو کامل بپوشونه بعد اون رو Hide کنید( این پنل باید بالاتر از از همه کنترل ها باشه یعنی روی اونها قرار بگیره در نرم افزار بلند میشه آحرین کنترل توی لیست کنترل هاتون)
حالا زمانی که دکمه ای رو زدید ابتدا یک افکت مات به شکل زیر به فرمتون بدید
this.Effect = new System.Windows.Media.Effects.BlurEffect { Radius = 3 };


حالا اون پنل رو هم از حالت Hide در بیارید
this.DarkPanle.Visibility = System.Windows.Visibility.Visible;
بعد از پایان کار مجدد با کد زیر افکت مات فرم رو بردارید
this.Effect = null;
و پنل رو مجدد مخفی کنید
this.DarkPanle.Visibility = System.Windows.Visibility.Collapsed;