前两天在使用wpf中的Window时,需要显示该Widow,获取该对话框的大小,然后再关闭掉该对话框。但是在这个过程中出现了一个错误。如下:
Additional Information: 运行库遇到了错误。此错误的地址为 0x56d7b7a7,在线程 0x10bc 上。错误代码为 0x80131623。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。
后来找了半天,才发现原来是Window的SizeToContent属性问题。
在调用window.ShowDialog()后,要自动计算窗口的大小。所以此时window.SizeToContent = SizeToContent.WidthAndHeight;计算完成后,该对话框自己关掉自己调用this.Close()。但在关闭之前需要将该对话框的属性设置成SizeToContent..Manual。否则就会出现上面的错误。
过程如下:
window.SizeToContent = SizeToContent.WidthAndHeight;
window.ShowDialog();
获取大小。
window.SizeToContent = SizeToContent.Manual;
window.Close();