相关疑难解决方法(0)

从Windows窗体转换为WPF

很长一段时间以来,我一直坚持使用Windows Forms开发(从VB6开始,一直到C#.NET 4.5),而且我已经达到了Windows Forms可以做的极限,两者都使用纯.NET和本机代码的特殊效果.

我知道WPF是未来(目前),Windows Forms正在放慢成为一种被弃用的技​​术.

我曾经尝试过学习WPF和XAML,但是我遇到了WPF的新设计师......与Windows Forms设计师相比,它似乎很难使用...当然......这只是一个学习曲线,在某些时候,我打算继续学习WPF.

与此同时,我想知道.NET的WPF设计器是否有更适合Windows Forms开发人员的替代方案?

c# windows wpf windows-forms-designer winforms

112
推荐指数
5
解决办法
7万
查看次数

防止在WPF代码中使用Dispatcher.Invoke

我本质上是一个网络和后端程序员.通常我尝试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)

这是有效的,但这不是唯一的事件,因此使我的代码变得丑陋丑陋.有没有更好的方法来做到这一点?

c# wpf

2
推荐指数
1
解决办法
1945
查看次数

标签 统计

c# ×2

wpf ×2

windows ×1

windows-forms-designer ×1

winforms ×1