Dzm*_*voi 5 .net c# silverlight event-handling
我ChildWindow已将CloseButton和处理程序分配给Click事件.代码(仅举例):
声明关闭按钮:
<Button x:Name="CloseButton" Click="OnCloseButtonClick" />
Run Code Online (Sandbox Code Playgroud)
专用计数器(用于诊断问题):
private uint _i;
Run Code Online (Sandbox Code Playgroud)
关闭事件处理程序
OnCloseButtonClick(object sender, RoutedEventArgs e)
{
DialogResult = true;
System.Diagnostics.Debug(_i++);
}
Run Code Online (Sandbox Code Playgroud)
快速点击程序后可以输出"1","2","3"等...正如我所知,在设置DialogResult= true(或false)之后,应该关闭ChildWindow并且不应该有任何方法来提升CloseButton的Click事件第二次.
任何人都可以帮助我找出问题的原因并帮助解决它没有bool标志(执行/!执行)?
复制自我的评论
问题是因为关闭会激活关闭窗口动画来关闭窗口,这意味着按钮事件在动画完成并关闭窗口之前可用,请参阅在 Silverlight ChildWindow 关闭动画期间用户可以单击任何按钮
一个快速而肮脏的解决方案是添加
((Button)sender).IsEnabled=false;
Run Code Online (Sandbox Code Playgroud)
在您单击处理程序函数的开头。
| 归档时间: |
|
| 查看次数: |
792 次 |
| 最近记录: |