很长一段时间以来,我一直坚持使用Windows Forms开发(从VB6开始,一直到C#.NET 4.5),而且我已经达到了Windows Forms可以做的极限,两者都使用纯.NET和本机代码的特殊效果.
我知道WPF是未来(目前),Windows Forms正在放慢成为一种被弃用的技术.
我曾经尝试过学习WPF和XAML,但是我遇到了WPF的新设计师......与Windows Forms设计师相比,它似乎很难使用...当然......这只是一个学习曲线,在某些时候,我打算继续学习WPF.
与此同时,我想知道.NET的WPF设计器是否有更适合Windows Forms开发人员的替代方案?
我本质上是一个网络和后端程序员.通常我尝试avaoid制作Windows程序.现在我必须创建一个WPF客户端.
我有一个后台任务,每隔一段时间就会举办一次活动.(它像轮询器一样工作,当满足标准时,会引发一个事件).Noob和我一样,我写了这个附加到事件的代码来更新UI.
private void IsDisconnectedEvent()
{
UserWindow.Visibility = Visibility.Hidden;
DisconnectWindow.Visibility = Visibility.Visible;
}
Run Code Online (Sandbox Code Playgroud)
这给出了一个例外,因为我不在同一个线程上.经过一些谷歌搜索后,我发现我应该改变代码:
private void IsDisconnectedEvent()
{
Dispatcher.Invoke(() =>
{
UserWindow.Visibility = Visibility.Hidden;
DisconnectWindow.Visibility = Visibility.Visible;
});
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,但这不是唯一的事件,因此使我的代码变得丑陋丑陋.有没有更好的方法来做到这一点?