WPF界面刷新问题
我在WPF程序中添加了一个进度条控件。
我想在函数运行时动态的更新进度条的数值。
可是每次都是等函数运行完了然后显示出最后更新结果。
怎样让进度条中属性在复制后立即更新显示??
------最佳解决方案--------------------http://msdn.microsoft.com/zh-cn/library/ms771729.aspx
------其他解决方案--------------------WPF 应该也是用多线程吧,
新开一个线程处理业务逻辑,然后在过程中updte主线程的UI。大概思路是这样,你搜搜多线程操作。
------其他解决方案--------------------关于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;
}
}
------其他解决方案--------------------现在也遇到这样的问题,急需解决。。。。。