silverlight中dialogresult和close

最近在一个silverlight的项目中,发现到一个诡异的bug,表现为:

1.连续打开或者关闭ChildWindow 可能导致主窗体被disable;

2.打开/关闭两个不同的ChildWindow 可能导致主窗体disable;

 

这里:http://forums.silverlight.net/forums/p/176423/424519.aspx 也有人在讨论该问题。

目前基本上可以是由控件自己内部本身的错误引起的,临时的解决方案为:

1.设置DialogResult的值后不要调用close方法;

2.在关闭ChildWindow时候调用:

Application.Current.RootVisual.SetValue(Control.IsEnabledProperty, true);

强制设置父窗体为enbale

 

这个临时的解决方案看起来有点别扭,当然你也可以重载ChildWindow,在派生类中override OnClosed方法

转自:http://www.cnblogs.com/biduan/archive/2010/06/20/1761579.html

你可能感兴趣的:(silverlight)