8,735
社区成员
发帖
与我相关
我的任务
分享
public class CloseWindowAction : TriggerAction<System.Windows.DependencyObject>
{
protected override void Invoke(object parameter)
{
var w = System.Windows.Window.GetWindow(AssociatedObject);
if (w != null)
{
w.Close();
}
}
}
public class WindowClosingBehavior : Behavior<System.Windows.Window>
{
protected override void OnAttached()
{
AssociatedObject.Closing += AssociatedObject_Closing;
base.OnAttached();
}
void AssociatedObject_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = (MessageBox.Show("确定要退出么?", AssociatedObject.Title, MessageBoxButton.OKCancel, MessageBoxImage.Warning) == MessageBoxResult.Cancel);
}
protected override void OnDetaching()
{
AssociatedObject.Closing -= AssociatedObject_Closing;
base.OnDetaching();
}
}
public class ExitApplicationBehavior : Behavior<System.Windows.Window>
{
protected override void OnAttached()
{
AssociatedObject.Closed += AssociatedObject_Closed;
base.OnAttached();
}
void AssociatedObject_Closed(object sender, EventArgs e)
{
Application.Current.Shutdown();
}
protected override void OnDetaching()
{
AssociatedObject.Closed -= AssociatedObject_Closed;
base.OnDetaching();
}
}
Focusable="{Binding focused}"