日期:2014-05-20  浏览次数:21123 次

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

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

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

怎样让进度条中属性在复制后立即更新显示??
------最佳解决方案--------------------
http://msdn.microsoft.com/zh-cn/library/ms771729.aspx
------其他解决方案--------------------
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;   
}   
}  

------其他解决方案--------------------
现在也遇到这样的问题,急需解决。。。。。