ik heb een WPF applicatie, en daarbij heb ik een Splashscreen gemaakt, met een processbar.
dit lijkt allemaal prima te werken.
echter, als ik hem build en test gebeurd het volgdende:
- ik start de vanuit een mapje op de schijf (bijv de ../bin/release/ )
- splash screen toont en processbar start te lopen
- bij 100% gaat pocessbar weg en start de main applicatie
echter, de main applicatie, start niet op de voorgrond, maar achter de map vanuit waar de exe is uitgevoerd (in dit geval de ../release/ )
heeft iemand enig idee waarom dit gebeurd, en hoe ik dit kan oplossen?
hier wat code snippits:
in de main
[CPP]
using ........
//etc etc...
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
//creating the exitmessage for use later on, after all, we want to use this in an other method.
string exitmessage = null;
public MainWindow()
{
//start new thread and use that for splashscreen.
Thread t = new Thread(new ThreadStart(SplashScreen));
t.SetApartmentState(ApartmentState.STA);
t.Start();
Thread.Sleep(5000);
//start mainwindow
InitializeComponent();
//end splash proc.
t.Abort();
//region //check lang
}
public void SplashScreen()
{
WpfApplication1.Window4 X = new WpfApplication1.Window4();
X.ShowDialog();
}
// region //etc.. app stuff
}
}
[/CPP]
en in de window4 (het spash screen)
[CPP]
using .....
//etc.. etc...
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for Window4.xaml
/// </summary>
public partial class Window4 : Window
{
System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
public Window4()
{
InitializeComponent();
Timer1();
}
public void Timer1()
{
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0,0,0,0,25);
dispatcherTimer.Start();
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
if (progressBar1.Value == 100)
dispatcherTimer.Stop();
else
progressBar1.Value++;
}
}
}
[/CPP]
hopelijk kan iemand me helpen.
alvast bedankt!
dit lijkt allemaal prima te werken.
echter, als ik hem build en test gebeurd het volgdende:
- ik start de vanuit een mapje op de schijf (bijv de ../bin/release/ )
- splash screen toont en processbar start te lopen
- bij 100% gaat pocessbar weg en start de main applicatie
echter, de main applicatie, start niet op de voorgrond, maar achter de map vanuit waar de exe is uitgevoerd (in dit geval de ../release/ )
heeft iemand enig idee waarom dit gebeurd, en hoe ik dit kan oplossen?
hier wat code snippits:
in de main
[CPP]
using ........
//etc etc...
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
//creating the exitmessage for use later on, after all, we want to use this in an other method.
string exitmessage = null;
public MainWindow()
{
//start new thread and use that for splashscreen.
Thread t = new Thread(new ThreadStart(SplashScreen));
t.SetApartmentState(ApartmentState.STA);
t.Start();
Thread.Sleep(5000);
//start mainwindow
InitializeComponent();
//end splash proc.
t.Abort();
//region //check lang
}
public void SplashScreen()
{
WpfApplication1.Window4 X = new WpfApplication1.Window4();
X.ShowDialog();
}
// region //etc.. app stuff
}
}
[/CPP]
en in de window4 (het spash screen)
[CPP]
using .....
//etc.. etc...
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for Window4.xaml
/// </summary>
public partial class Window4 : Window
{
System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
public Window4()
{
InitializeComponent();
Timer1();
}
public void Timer1()
{
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0,0,0,0,25);
dispatcherTimer.Start();
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
if (progressBar1.Value == 100)
dispatcherTimer.Stop();
else
progressBar1.Value++;
}
}
}
[/CPP]
hopelijk kan iemand me helpen.
alvast bedankt!
Laatst bewerkt: