我发现在WPF下改变控件状态,如是否可示,每次只在程序运行完后才出现效果,如我想做一个loading的效果,按了按钮做事情之前显示一个Canvas,在做完事后将此canvas隐藏掉,但我发现程序运行的时候,是改变不了其状态的,只有等事情做完才将最后设置的效果显示出来,感觉设置完后界面不会马上生效,有什么办法可以解决吗?

解决方案 »

  1.   

    可以显示的,你所说的改变不了状态应该是你做的事情是在UI线程中去做的,UI线程一直在处理你的任务,没机会来更新UI。
    你可以把任务放在后台线程去做,或者加DoEvent,或者这个Loading的效果用个Timer,然后使用DispatchPriority.Send来更新这个UI。
      

  2.   

    嗯,我也是后来才知道,因为之前我一直在做WEB的项目,现在用winform做WPF,所以不知道原来在winform下这些效果全部要使用多线程进行的,比在WEB下要麻烦很多,现在我已使用多线程解决了