【发布时间】:2016-03-09 09:52:45
【问题描述】:
我的 WPF 应用程序有一个小问题。
我有一个初始图像(作为 XAML 窗口)和主应用程序(作为另一个从 Splash 调用的 XAML 窗口)
即使我在启动窗口上使用此.Close() 并在主应用程序上工作,启动窗口仍然在任务栏中可见。
如果我要在主应用程序上使用这个.Close,我将在任务栏应用程序中有两个空白窗口,我必须按 X 才能完全关闭。
我也尝试过Application.Current.Shutdown(),但结果相同。
飞溅:
public Splash()
{
InitializeComponent();
}
private void Window_ContentRendered(object sender, EventArgs e)
{
CloseProcedure();
}
public async void CloseProcedure()
{
//Missing data loading which will be async.
UC_Main UCMain = new UC_Main();
MainWindow window = new MainWindow();
window.AppContent.Children.Add(UCMain);
this.Close();
await Task.Delay(500); //for fade effect.
window.Show();
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Closing -= Window_Closing;
e.Cancel = true;
var anim = new DoubleAnimation(0, (Duration)TimeSpan.FromSeconds(0.5));
this.BeginAnimation(UIElement.OpacityProperty, anim);
anim.Completed += (s, _) => this.Close();
}
主应用
private void BTN_Close_MouseUp(object sender, MouseButtonEventArgs e)
{
this.Close();
}
private void titleBar_MouseDown(object sender, MouseButtonEventArgs e)
{
titleBar.Background = Brushes.White;
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Closing -= Window_Closing;
e.Cancel = true;
var anim = new DoubleAnimation(0, (Duration)TimeSpan.FromSeconds(0.2));
this.BeginAnimation(UIElement.OpacityProperty, anim);
anim.Completed += (s, _) => Application.Current.Shutdown();
}
}
【问题讨论】:
-
尝试 Environment.Exit(0);
-
@Mainak 没用。一样的