我的ChildWindow
已将CloseButton和处理程序分配给Click
事件。代码(仅举例):
声明关闭按钮:
<Button x:Name="CloseButton" Click="OnCloseButtonClick" />
专用计数器(用于诊断问题):
private uint _i;
关闭事件处理程序:
OnCloseButtonClick(object sender, RoutedEventArgs e)
{
DialogResult = true;
System.Diagnostics.Debug(_i++);
}
快速点击程序后可以输出“1”,“2”,“3”等...
我知道在设置DialogResult
= true
(或false
)之后,应该关闭ChildWindow,并且不应该有任何方法第二次提升CloseButton的Click
事件。 / p>
任何人都可以帮助我找出问题的原因,并帮助解决它没有bool标志(执行/!执行)?
答案 0 :(得分:2)
从我的评论中复制
问题是因为关闭会激活关闭窗口动画以关闭窗口,这意味着按钮事件可用,直到动画结束并且窗口关闭,请参阅During Silverlight ChildWindow closing animation user can click any button
快速而肮脏的解决方案是添加
((Button)sender).IsEnabled=false;
在您开始时点击处理程序功能。