PDA

View Full Version : حرفه ای: SplashScreen in wpf



ali reza mansoori 2
شنبه 01 تیر 1392, 23:06 عصر
سلام دوستان
میخوام مثل WinForm برای پروژه ام یه SplashScreen درست کنم
ولی در WPF برای SplashScreen فقط میشه یه عکس png رو اضافه کرد
میخوام مثل WinForm یه فرم داشته باشم که بتونم بعضی از اطلاعات رو به صورت کد نویسی داخلش نشون بدم


یا علی

Mahmoud.Afrad
یک شنبه 02 تیر 1392, 00:00 صبح
ولی در WPF برای SplashScreen فقط میشه یه عکس png رو اضافه کرد
این "فقط" رو از کجا آوردید؟
همونطور که در winform عمل میکنی در wpf هم میتونی عمل کنی. یک window مخصوص اسپلش بساز و نمایش بده.

ali reza mansoori 2
یک شنبه 02 تیر 1392, 17:57 عصر
همونطور که در winform عمل میکنی در wpf هم میتونی عمل کنی. یک window مخصوص اسپلش بساز و نمایش بده.
دوست عزیز تو Winform یه SplashScreen به پروژه اضافه میکنم و داخل Properties پروژه در تب Application در قسمت Splash screen فرمی که اضافه کردم رو انتخاب میکنم
ولی Wpf داخل Properties پروژه همچین چیزی نداره

Mahmoud.Afrad
یک شنبه 02 تیر 1392, 21:56 عصر
خب در winform در vb.net بله حق با شماست. ولی اینجا باید window را خودتون نمایش بدید و در زمان مناسب ببندید.
فرض کنید در سازنده و یا رویداد لودwindow اصلی کد زمانگیری وجود داره.

private void Window_Loaded(object sender, RoutedEventArgs e)
{
System.Threading.Thread.Sleep(5000);
}


در App.xaml پراپرتی StartupUri را پاک کنید و رویداد Startup رو هندل کنید.

<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup" >

</Application>

در CodeBehinde ابتدا لودینگ رو نمایش بدید و در انتها لودینگ را ببندید:


public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
WindowLoading loading = new WindowLoading();
loading.Show();
MainWindow main = new MainWindow();
main.Show();
loading.Close();
}
}