Я получил это приложение WPF, и здесь я сделал Splashscreen (окно wfp) с панелью процессов на нем. (сейчас я просто позволю ему работать с таймером, чтобы изменить это позже)
пока что, кажется, все это работает довольно хорошо.
но происходит следующее:
- Я запускаю сборку из папки (../bin/release/)
- Splash теперь появляется на экране, и панель процессов начинает работать.
- при полном баре запускается основное приложение (MainWindow)
но это главное окно теперь не запускается сверху, оно находится за папкой, из которой был выполнен exe (в данном случае ../release/)
Я искал вокруг, но не совсем понимаю, как использовать фрагменты, которые я нахожу в Интернете, и не думаю, что это правильное решение.
скорее используйте достойное исправление, а затем обходной путь (если возможно)
Итак, почему это происходит, и как я могу изменить это поведение для правильной работы? (так, чтобы после всплеска главное отображалось поверх (непостоянно)?)
некоторые части кода:
в основном
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
}
}
в окне 4 (всплеск)
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++;
}
}
}
Надеюсь, кто-нибудь может помочь мне здесь.
спасибо!