如果我使用Application.LoadComponent()
加载UserControl,Page或Window,当我尝试关闭它时,我的应用程序会冻结。Application.LoadComponent使应用程序冻结关闭
该应用程序显然关闭,但该过程继续运行。调试时易于注意。
我已经在Windows 7 64bit和Vista 32bit下测试了它。在这两种情况下,我都使用VS2008和.NET 3.5。
重现bug可以通过创建一个WPF应用程序如下建:
public partial class Window1 : Window {
public Window1() {
InitializeComponent();
}
public void LoadCopy() {
var uri = new Uri("/WpfApplication1;component/window1.xaml", UriKind.Relative);
var copy = (Window)Application.LoadComponent(uri);
MessageBox.Show(copy.Title);
}
private void Button_Click(object sender, EventArgs e) {
LoadCopy();
}
}
有谁知道什么可能发生?以及如何解决它?
完美!可能这将避免从应用程序的孩子中删除窗口提到的循环Mrk Mnl。只是一个猜测。你能评论你是如何找到这个解决方案的? – 2010-10-19 12:48:58
当我将Win Form应用程序转换为WPF时,遇到了类似的问题。我使用CenterOwner为窗口状态创建的窗口行为不正确。在我将创建的应用程序添加为所有者后,它负责处理它。 – 2010-10-19 21:32:06