WPF:防止在RDP连接(断开)后卸载和加载

12
当我打开我的WPF应用程序,并连接到我的PC进行远程桌面连接时,WPF会重新加载应用程序(主控件上的卸载和加载事件被触发)。当我断开连接时,这种情况再次发生。
我知道UI必须重新绘制,但为什么要重新加载控件?能否防止此情况发生?或者有没有一种方法可以检测是否由RDP(断开)连接触发了重新加载?

什么类型的控件会被重新加载?请提供更多细节。 - Eriawan Kusumawardhono
2个回答

2

我可以通过在第一次执行时取消订阅Loaded事件并将初始化代码从Unloaded事件移动到Exit事件来解决我的应用程序问题。


我想要实现你的解决方案,但是我遇到了几个问题:我的主控件的构造函数总是被调用,无论是否加载事件。你如何正确地取消订阅“load”事件?你是在说加载事件吗?(这个事件出现在构造函数调用之后) - Tchoupi
订阅Loaded事件,并在处理程序中取消订阅。 - Coder14
谢谢回复,我已经在我的Windows和控件本身上尝试过了。 问题是加载事件在我的控件的构造函数调用之后被调用。 因此,控件本身被重建,导致无效行为。 在我的构造函数中,如果我只初始化一次(以避免刷新)并且不调用InitializeComponent()方法,则控件不会呈现,并显示为黑色元素。 - Tchoupi
InitializeComponent应该留在构造函数中。我将自定义初始化移动到Loaded事件处理程序中。 - Coder14

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接