WPF界面刷新问题

lxdfigo 2010-02-22 11:34:09
我在WPF程序中添加了一个进度条控件。

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

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

怎样让进度条中属性在复制后立即更新显示??
...全文
1049 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenfang7133 2012-08-07
  • 打赏
  • 举报
回复
现在也遇到这样的问题,急需解决。。。。。
RexZheng 2010-02-24
  • 打赏
  • 举报
回复
引用 3 楼 lxdfigo 的回复:
关于BeginInvoke(DispatcherPriority, Delegate)这个调用,就是把更新UI的函数附近去是吧?可是那个是WPF窗口更新UI的函数啊? 好像没有Update或是Invali之类的?


.Dispatcher.Invoke
lxdfigo 2010-02-24
  • 打赏
  • 举报
回复
方法找到了,谢谢大家,委托调用下面这段中的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;
}
}
lxdfigo 2010-02-24
  • 打赏
  • 举报
回复
更新界面的函数是哪个?? 改变的状态,不知道怎么更新,比如我把控件的透明度改成0.8(processBar.Opacity = 0.8;),之后调用哪个函数更新界面? (用委托修改属性,Invoke后还是没有更新)
lxdfigo 2010-02-23
  • 打赏
  • 举报
回复
关于BeginInvoke(DispatcherPriority, Delegate)这个调用,就是把更新UI的函数附近去是吧?可是那个是WPF窗口更新UI的函数啊? 好像没有Update或是Invali之类的?
健者天行 2010-02-23
  • 打赏
  • 举报
回复
WPF 应该也是用多线程吧,
新开一个线程处理业务逻辑,然后在过程中updte主线程的UI。大概思路是这样,你搜搜多线程操作。

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧