window动态调整大小后无法关闭

     前两天在使用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();

原文地址:https://www.cnblogs.com/jyz/p/1308284.html