更新:2018 2. 27
这是我两年前写的文章,当时没考虑到debug环境下的问题,事实上debug环境下才会有AdornerLayer,这个问题应该不是单纯由AdornerLayer引起的
刚好今年一月份的时候有个人艾特了我http://bbs.csdn.net/topics/392301858,而我已经很久没写WPF了
请参考提问者最后一个回答:
但网络上也没有别的猜测和处理办法了,只有在窗体里面建立线程句柄 之后 再启动线程。然后 overrides onclosing里面 关掉没退出的线程就可以了。程序可以正常退出。
前几天我在CSDN扔了一个问题,基本描述一下:写了一段这样的代码,来实现获取Control的template,却发现一个这样的问题,就是当我打开了一个window以后,手动调用Close(),窗口的确是消失了,但是当我关闭了主窗口以后,却发现程序没有退出。
1 private void ControlTypeSelectingBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 2 { 3 try 4 { 5 Type type = ControlTypeSelectingBox.SelectedItem as Type; 6 7 if (type == null) 8 throw new ArgumentNullException("Type is null"); 9 10 ConstructorInfo info = type.GetConstructor(System.Type.EmptyTypes); 11 Control control = info.Invoke(null) as Control; 12 13 Window window = control as Window; 14 Window windowAdnore = null; 15 16 //注意,下面必须要有打开窗口或者把控件放入grid的操作,这样才能让下面的template正确显示出来 17 if (window != null) 18 {