1.添加引用
右键添加引用
2.在.xml中加上
xmlns:i=“http://schemas.microsoft.com/xaml/behaviors”
<i:Interaction.Triggers>
<i:EventTrigger EventName="Closing" >
<i:InvokeCommandAction Command="{Binding CloseCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
3.ViewModel.cs
public RelayCommand<CancelEventArgs> CloseCommand { get; set; }
public MainWindowViewModel()
{
CloseCommand = new RelayCommand<CancelEventArgs>(OnCloseCommand);
}
public void OnCloseCommand(CancelEventArgs obj)
{
if (obj != null) { obj.Cancel = true; }
if (CONST_STOP.Equals(StartOrStop))
{
System.Windows.MessageBox.Show("服务正在运行中,请停止后再退出!");
return;
}
SampleDialog view = new SampleDialog(true) { Tag = "ProgramExit" };
view.SetDialogText("是否确定关闭程序?");
var result = DialogHost.Show(view, "MainDialog", ClosingEventHandler);
}
private void ClosingEventHandler(object sender, DialogClosingEventArgs eventArgs)
{
DialogHost host = sender as DialogHost;
SampleDialog control = host.DialogContent as SampleDialog;
if (control.Tag.ToString().Equals("ProgramExit"))
{
if (Convert.ToBoolean(eventArgs.Parameter))
{
// 记录当前时间
IniFileHelper.IniWrite("TimeStamp", "LastClosedTime", DateTime.Now.ToLocalTime().ToString());
System.Windows.Application.Current.Shutdown();
}
}
}