我有一个窗口,我在其中处理自定义函数中的Closing事件。在XAML中,我设置了以下内容:
<ext:ExtendedWindow x:Name="Window1" Closing="Window_Closing">
此函数在代码隐藏中声明如下:
private void Window_Closing(object sender, CancelEventArgs e)
{
Closing -= Window_Closing;
e.Cancel = true;
Storyboard storyboard = this.CloseWindowWidthAnimation(0f);
storyboard.Completed += CloseWindow;
storyboard.Begin();
}
private void CloseWindow(object sender, EventArgs e)
{
this.Close();
}
Window_Closing取消关闭事件并在窗口上播放动画(宽度缩小为0)。对于Completed事件,我添加了一个在动画播放后最终关闭窗口的函数。 CloseWindowWidthAnimation是辅助类中的一个静态方法,它只返回一个故事板。 ExtendedWindow有一个基类Window,只有一些依赖属性来处理颜色方案。
当关闭功能执行完毕并且启用了“我的代码”时,“中断模式”将被执行。屏幕弹出。继续调试会话退出应用程序,但我认为这是known issue。禁用“仅我的代码”时,以下错误显示:
This Visual is not connected to a PresentationSource.
在CloseWindow退出后,当窗口实际上已关闭时,错误显示。我认为它与故事板/动画有关,因为当我不覆盖Closing事件时它不会抛出错误。当我构建应用程序并运行可执行文件时,它不会崩溃,我也不会在某处发现错误。我认为它与故事板有关,但错误并不是非常具有描述性,而且我还没有找到任何相关内容。所以我的问题如下:
可能导致此类行为的原因是什么?我可以做些什么来解决这个问题?
更新:调用堆栈窗口(主线程)