How to force the UI to refresh immediately(WPF)
Question
Folks,
In my application, when the user hits "Submit" button, I have to make a Web service call asynchronously. Here is what I do.
1. Disable a bunch of controls, update some text:
this._btnSubmit.IsEnabled = false; ...
this._lblInfo.Text = "Connecting..."2. Use Dispatcher.BeginInvoke for the actual Web service call.
this.Dispatcher.BeginInvoke(DoTheStuff, DispatcherPriority.ContextIdle);
The idea is to that the UI will get updated before the actual asynchronous call to the Web service is made.
The problem is that the UI is not updating immediately. It takes a few seconds before the controls disable and the text appears.
What is it that I need to do to ensure that the UI gets updated?
I probably could spawn a background thread but that would be an overkill given that the Web service call is already asynchronous.
Thank you in advance for your help.
Regards,
PeterThursday, January 06, 2011 8:10 PMReply|Quote|
Answers
Hi Peter Taps,
Based on your description, I think you could try to below code snippet to achieve your goal(Force UI refresh).
private delegate void NoArgDelegate();
public static void Refresh(DependencyObject obj)
{
obj.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.ApplicationIdle,
(NoArgDelegate)delegate { });
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Refresh(testDtGrid);
}
Best regards,
Sheldon _Xiao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- Marked as answer by Peter Taps Wednesday, January 12, 2011 7:27 PM
Monday, January 10, 2011 4:00 AMReply|Quote|
All replies
- I know this doesn't answer your question, but have you considered using a BusyIndicatorto disable interaction with the window, instead of manually enabling and disabling all the controls. Remember, this isn't WinForms. The Extended WPF Toolkit has a free one.Thursday, January 06, 2011 8:41 PMReply|Quote|
Hi Peter Taps,
Based on your description, I think you could try to below code snippet to achieve your goal(Force UI refresh).
private delegate void NoArgDelegate();
public static void Refresh(DependencyObject obj)
{
obj.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.ApplicationIdle,
(NoArgDelegate)delegate { });
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Refresh(testDtGrid);
}
Best regards,
Sheldon _Xiao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- Marked as answer by Peter Taps Wednesday, January 12, 2011 7:27 PM
Monday, January 10, 2011 4:00 AM
_________________
for url: http://social.msdn.microsoft.com/Forums/vstudio/en-US/d651bd33-53fc-4218-9089-cd77d32f4fd8/how-to-force-the-ui-to-refresh-immediately?forum=wpf
How to force the UI to refresh immediately(WPF)的更多相关文章
- WPF如何实现一个漂亮的页签导航UI
最近看到一个比较漂亮的UI主界面,该UI是用左边的页签进行导航,比较有特色,就想着尝试用WPF来实现一下.经过一番尝试,基本上将UI设计图的效果用WPF程序进行了实现.下面介绍一下主要的思路: 1 U ...
- 利用HTML实现软件的UI
先看看下面的实例 这是应朋友之邀编写的查询职业技能鉴定考核的分数的软件.看过我之前的博文的,可知这是借用我之前的网页界面. 这个UI,如果用WinForm的控件来实现,难度很高. 于是另辟蹊径,用We ...
- 随心所欲导出你的 UI 界面到 PDF 文件
使用 C1PDF 控件可以导出文件到 PDF 文件,结合 .NET 平台特性你可以在任何客户端生成自定义报表.你可以打印任何 UI 界面,例如 DataGrid 导出到 PDF. 在本篇文章中我们将阐 ...
- Server-Side UI Automation Provider - WPF Sample
Server-Side UI Automation Provider - WPF Sample 2014-09-14 引用程序集 自动化对等类 WPF Sample 参考 引用程序集 返回 UIAut ...
- WPF案例 (六) 动态切换UI布局
原文:WPF案例 (六) 动态切换UI布局 这个Wpf示例对同一个界面支持以ListView或者CardView的布局方式呈现界面,使用控件ItemsControl绑定数据源,使用DataTempla ...
- (转)基于 WPF + Modern UI 的 公司OA小助手 开发总结
原文地址:http://www.cnblogs.com/rainlam163/p/3365181.html 前言: 距离上一篇博客,整整一个月的时间了.人不能懒下来,必须有个阶段性的总结,算是对我这个 ...
- 32.10 使用模板更改控件的UI
32.10 使用模板更改控件的UI 样式是改变WPF控件基本外形的非常好(且非常简单)的方式,它通过为窗口部件的特性设置建立一组默认的值,从而改变WPF控件的基本外形.但是,即使样式允许我们改变各种 ...
- 基于 WPF + Modern UI 的 公司OA小助手 开发总结
前言: 距离上一篇博客,整整一个月的时间了.人不能懒下来,必须有个阶段性的总结,算是对我这个阶段的一个反思.人只有在总结的过程中才会发现自己的不足. 公司每天都要在OA系统上上班点击签到,下班点击签退 ...
- WPF 支持的多线程 UI 并不是线程安全的
原文:WPF 支持的多线程 UI 并不是线程安全的 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.欢迎转载.使用.重新发布,但务必保留文章署名吕毅(包含链 ...
随机推荐
- 必备技能:分清楚DOM的attribute和property
分清楚DOM的attribute和property,用JQ的时候分清楚attr,和prop方法,网上有很多大神的总结,我就不列举了.
- Nullable<>
Nullable<>是一个结构,但是怎么能让此结构=null,这是编译器的一个比较特殊的,他会new一个该结构的实例去赋值.Nullable<>有一个属性是HasValue,是 ...
- fragment切换刷新 及下拉刷新
此工程较BaiduLocationXMLFragmentDB相比:1.滑动fragment自动刷新该fragment2.下拉刷新fragment,上拉暂未实现 a.fragment切换刷新 1 . 由 ...
- JavaScript基础--事件驱动和访问CSS技术(十)
1.原理: 2.快速入门案例 js中的事件主要分为4种: 案例:监听鼠标点击事件,并能够显示鼠标点击的位置x,y <script language="javascript" ...
- 在 C++ 代码中使用 UE4 插件---Using a plugin in C++ code
例如使用 CustomMeshComponent 插件 在Build.cs 文件 中 添加以下两行代码 如图可配置路径,可解决#include "CustomMeshComponent&qu ...
- Python OpenCV —— Arithmetic
图案的算术操作. # -*- coding: utf-8 -*- """ Created on Wed Sep 28 11:54:47 2016 @author: Adm ...
- Linux下使用yum安装MariaDB
版本:centos7 Linux下安装MariaDB官方文档参见:https://mariadb.com/kb/zh-cn/installing-mariadb-with-yum/ 1.创建Maria ...
- 原生javascript加载运行
原生javascript加载运行 (function(){ //TODO sometings }()); 在要运行相应代码的位置加入script标签,创建函数并自执行; 关于window.onload ...
- Linux常用命令大全(share)
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...
- Scramble String
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrin ...
