分享

WPF界面刷新问题我在WPF程序中添加了一个进度条控件。我想在函数运行时动态的更新进度条的数值。可

 牛人的尾巴 2017-11-13



WPF界面刷新问题
我在WPF程序中添加了一个进度条控件。

我想在函数运行时动态的更新进度条的数值。

可是每次都是等函数运行完了然后显示出最后更新结果。

怎样让进度条中属性在复制后立即更新显示??

x

WPF 应该也是用多线程吧,
新开一个线程处理业务逻辑,然后在过程中updte主线程的UI。大概思路是这样,你搜搜多线程操作。



关于BeginInvoke(DispatcherPriority, Delegate)这个调用,就是把更新UI的函数附近去是吧?可是那个是WPF窗口更新UI的函数啊? 好像没有Update或是Invali之类的?

引用:

  关于BeginInvoke(DispatcherPriority, Delegate)这个调用,就是把更新UI的函数附近去是吧?可是那个是WPF窗口更新UI的函数啊? 好像没有Update或是Invali之类的?



.Dispatcher.Invoke

更新界面的函数是哪个?? 改变的状态,不知道怎么更新,比如我把控件的透明度改成0.8(processBar.Opacity = 0.8;),之后调用哪个函数更新界面? (用委托修改属性,Invoke后还是没有更新)

方法找到了,谢谢大家,委托调用下面这段中的DoEvent就可以了:
public partial class App : Application   
{   
private static DispatcherOperat
ionCallback exitFrameCallback = 
new DispatcherOperationCallback(ExitFrame);   
public static void DoEvents()   
{   
DispatcherFrame nestedFrame = 
new DispatcherFrame();   
DispatcherOperation exitOperation = 
Dispatcher.CurrentDispatcher.BeginInvoke
(DispatcherPriority.Background, 
exitFrameCallback, nestedFrame);   
Dispatcher.PushFrame(nestedFrame);   
if (exitOperation.Status != 
DispatcherOperationStatus.Completed)   
{   
exitOperation.Abort();   
}   
}   
private static Object ExitFrame
(Object state)   
{   
DispatcherFrame frame = state as 
DispatcherFrame;   
frame.Continue = false;   
return null;   
}   
}  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多