首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Silverlight中的HttpWebRequest.BeginGetRequestStream中更新我的UI

要在Silverlight中的HttpWebRequest.BeginGetRequestStream方法中更新UI,您可以使用以下方法:

  1. 使用Dispatcher.BeginInvoke()方法:

在HttpWebRequest.BeginGetRequestStream方法的回调函数中,使用Dispatcher.BeginInvoke()方法更新UI。例如:

代码语言:csharp
复制
private void UpdateUI()
{
    // 更新UI的代码
}

private void RequestCallback(IAsyncResult result)
{
    // 处理请求回调
    // ...

    // 更新UI
    Dispatcher.BeginInvoke(() => UpdateUI());
}

private void SendRequest()
{
    // 发送请求
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com");
    request.BeginGetRequestStream(RequestCallback, null);
}
  1. 使用DependencyProperty:

将需要更新的UI元素绑定到一个DependencyProperty上,然后在HttpWebRequest.BeginGetRequestStream方法的回调函数中更新DependencyProperty的值。例如:

代码语言:csharp
复制
public static readonly DependencyProperty MyPropertyProperty =
    DependencyProperty.Register("MyProperty", typeof(string), typeof(MyControl), null);

public string MyProperty
{
    get { return (string)GetValue(MyPropertyProperty); }
    set { SetValue(MyPropertyProperty, value); }
}

private void RequestCallback(IAsyncResult result)
{
    // 处理请求回调
    // ...

    // 更新UI
    MyProperty = "新的值";
}

private void SendRequest()
{
    // 发送请求
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com");
    request.BeginGetRequestStream(RequestCallback, null);
}

这样,在HttpWebRequest.BeginGetRequestStream方法的回调函数中,就可以更新UI了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Silverlight

Silverlight是基于时间线,不象Flash是基于帧,所以在Silverlight,很少看到有文档专门介绍SL帧。...但是我们从动画原理知道,动画只不过是一幅幅静态图片连续播放,利用人眼视觉暂留形成,因此任何动画原理上讲,至少还是有每秒播放多少帧这个概念。...Silverlightsdk文档,有一段话: ... maxFramerate 值可通过 Silverlight 插件对象 maxframerate 参数进行配置。...maxframerate 参数默认值为 60。currentFramerate 和 maxFramerate 是报告每秒帧数 (fps) 值。实际显示帧速率设置为较低数字。...,运行效果: 拖动滑块,观察一下时间更新快慢,同时注意浏览器左下角状态栏显示,当然 CompositionTarget.Rendering不仅仅只能用来显示时间,还能做更多事情,大家就尽情发挥想象吧

92960
  • Silverlight 3.0 WriteableBitmap

    Silverlight 3.0 WriteableBitmap 尽管矢量图形非常强大但是在有些情况下还是需要用到位图,因为他们在运行时能得到更高执行效率和渲染效果。...在Silverlight 2.0获得位图唯一途径就是服务器下载并将其嵌入到一个Image元素上。 在Silverlight 3.0添加了一个新图形类,WriteableBitmap。...他可以动态呈现位图,再结合上矢量图形一起运用,对于拍摄视频播放快照、生成算法内容(如分形图像)和数据可视化(如音乐可视化应用程序)很有用。...image.Margin = new Thickness(5); image.Source = wb; // 将Image元素放入容器控件...WriteableBitmap转PNG http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx

    60780

    silverlight如何得到ComboBox选中值(SelectedValue)?

    用惯了Asp.NetComboBox和ListBox,想当然以为SL/Winform/WPFComboBox也应该有类似SelectedValue属性,但是结果很遗憾,木有!...不过,这个问题其实在Winform中就有了,这里给出三种还算简便解决办法: 1.参考一文,自己做个新ComboBox类,实现SelectedValue属性(这个算比较牛做法) 2.善用ComboBoxItem...Tag属性,既然没有Value属性,何不直接用Tag属性充当Value呢?...Text=" + (cbo2.SelectedItem as ComboBoxItem).Text;//取值 这种做法,个人感觉有点滑头,不过大部分情况下已经能解决问题了 3.可能这个才是MS设计人员初衷...,在观察ComboBox.Items.Add()时,发现这Add方法接受一个Object类型参数,Object可是万物之祖啊!

    1.2K80

    Silverlight序列化

    序列化简言之是这样一种能力:能够把复杂对象(Object)变成某种格式字符串(常见格式有xml,string,二进制文件等),这样可以方便在各种系统传输或交换(比喻socket编程数据包只能用...,构造一个复杂对象,然后序列化为二进制格式,得到该格式后,再反序列化(还原)为复杂对象 Winform序列化 1 using System; 2 using System.IO; 3...,传统序列化方式有很多被精减掉了(比如BinaryFormatter之类),唯一得以保存只剩下System.Xml.Serialization,所以SL只能通过xml来序列化对象(虽然xml序列化后字节数相对...Binary有点大,不过我们也别无选择),另外有一点很让人不习惯是,需要序列化自定义类,居然不需要加[Serializable],[DataMember]这类标记!...(这一点让郁闷了好久,还为此在网上疯狂百度,google为啥sl不识别Serializable) 1.先定义一个需要序列化类 自定义类 namespace SerializeDemo {

    73550

    Silverlight UIElement 与 FrameworkElement

    Silverlight UIElement 与 FrameworkElement 在 Silverlight , 有两个比较重要基础控件 UIElement 和 FrameworkElement...(UIElement 是 Silverlight 具有可视外观并可以处理基本输入大多数对象基类。)...(FrameworkElement 为 Silverlight 布局涉及对象提供公共 API 框架。...FrameworkElement 还定义在 Silverlight 与数据绑定、对象树和对象生存期功能区域相关 API。) 这两个控件继承关系如下: ?...文档以及类图可以看出, UIElement 是一个比较低级控件, 仅仅具有可视化外观和处理基本输入事件, 例如控件大小、 透明度、 鼠标键盘事件以及特效等, 如果需要开发控件仅仅需要这些基本属性以及事件

    55910

    Silverlight与WPFBeginInvoke差异

    Silverlight/WPF,如果要在多线程对界面控件值做修改,用Dispatcher对象BeginInvoke方法无疑是最方便办法 ,见:温故而知新:WinForm/Silverlight多线程编程如何更新...UI控件值 但今天发现WPFBeginInvoke却无法自动将匿名方法/Lambda表达式转变成Delegate类型(注:对委托,匿名方法,Lambda感到陌生朋友先阅读温故而知新:Delegate...,Action,Func,匿名方法,匿名委托,事件) silverlight代码片段: private void button1_Click(object sender, RoutedEventArgs...,同时还要定义相应委托类型,难道不能象Silverlght那样清爽一点么?...不过仍然有点疑问:为啥编译器能自动认别Silverlight,却不认WPF呢?这算不算是编译器BUG(或是需要改进地方)

    1K80

    温故而知新:WinFormSilverlight多线程编程如何更新UI控件

    单线程winfom程序,设置一个控件值是很easy事情,直接 this.TextBox1.value = "Hello World!"...究其原因,winformUI控件不是线程安全,如果可以随意在任何线程改变其值,你创建一个线程,创建一个线程,大家都来抢着更改"TextBox1"值,没有任何秩序的话,天下大乱......(Winform/Silverlight能用) 之所以说它神秘,是因为msdn官方对它解释据说也是不清不楚 using System; using System.Threading; using ...(Winform/Silverlight通用) BackgroundWorker会在主线程之外,另开一个后台线程,我们可以把一些处理放在后台线程处理,完成之后,后台线程会把结果传递给主线程,同时结束自己...RunWorkerCompletedEventArgs e)         { //这时后台线程已经完成,并返回了主线程,所以可以直接使用UI控件了 this.textBox1.Text = e.Result.ToString

    1.8K50

    silverlightsocket编程注意事项

    1.粘包 目前slsocket只能用tcp/ip协议,而tcp/ip本质是一个"流"协议,也就是说数据无边界,发送就是一连串字节(没有数据包概念),因此连续发送时有所谓“粘包”现象,详细解释如下...换言之:如果socket能“感觉”到马上还有数据要发送,而且在本次发送缓冲区还有空余时,它会自动把下次发送内容挪一部分过来,直到本次缓冲区填满,以便有效利用缓冲区,减少发送次数,至于它是如何感觉...,就不知道鸟:) 所以如果想正确划清数据边界,得自己想办法封包/拆包 常见解决办法:在发送方与接收方制定一个共同约定,比如定义一个结构体struct,把“包长度,包序号,要发送数据,包唯一标识...网络编程,会有各种不可控情况,所以异常捕获很重要,否则程序会用着用着就挂掉了。...必要时可以将连接关闭) 后话:很期待silverlight在未来版本,加入udp协议支持,这样应用范围将更加广泛。

    64990

    如何还原NC美图

    Fig2b,分为三部分: 上图为细胞系表达水平箱线图。中间为热图,显示乳腺癌及其相关生物学过程预测抑癌基因和癌基因top50。基于欧氏距离矩阵进行层次聚类。下图是颜色标记不同注释信息。...红色(蓝色)标记Moonlight基因得分加(减)生物过程。特定基因突变样本数量白色到深紫色不等。超甲基化DMR显示为蓝色,去甲基化黄色。KM生存预后差基因标记为粉红色。...后来,找到了这个神器——ComplexHeatmap。看这个R包直译就知道啦,它是用来画复杂热图。那到底有多复杂?小编带你一览庐山真面目。...,数据基因为行,所以就加到右边了,但代码是一样。...小编总结 ComplexHeatmap由顾祖光博士创建,是一个全面绘制复杂热图R包,利用它你能绘制许多文献图片并学习到美图精髓。像小编这样手残星人都能复制出来,你还没有信心么???

    1.2K30

    base64编码在silverlight使用

    在传统.net应用,使用base64编码字符串是一件很轻松事情,比如下面这段代码演示了如何将本地文件转化为base64字符串,并且将base64字符串又还原为图片文件. base64编码在传统.net...程序应用(by 菩提树下杨过 ) using System; using System.Drawing; using System.Drawing.Imaging; using System.IO...; namespace Base64Study { /// /// base64编码在传统.net程序应用(by 菩提树下杨过 http://yjmyzz.cnblogs.com... b = File.ReadAllBytes(filePath); return Convert.ToBase64String(b);         } /// /// base64...环境,这种简单操作方式却无法使用了,幸好网上有一个开源免费组件FluxJpeg,同时国外有高人已经利用该组件写出了将位图转化为base64方法,这里我们借用一下即可: 代码 <UserControl

    1.3K70

    iOS 11 UI Kit谈谈iOS 11新变化

    iOS 11毫无疑问是一次大规模系统更新UI、系统内核、锁屏等多方面都进行了不同程度改进。...此外,我们再来看看苹果设计团队设计原则: • 内容凸显第一原则 • UI元素不与内容竞争,除非是帮助用户去理解潜在功能作用 在这样设计思维和原则基础上,我们以下几个角度进行分析。...•颜色/字号/字重 iOS 11也大量使用了颜色深浅、字号大小和文本粗细来展示标签不同层次,我们可以看到照片APP在iOS 10章节标题和照片对比不明显,在更新后,章节标题主标题字体变大加粗,副标题字体变大...(3)圆角图标 iOS 11大量图标由2px线性改为了面型,线框状态变得更加圆润,亲和力。总体来说边角更圆润,空心变为实心,色快感变重,使iOS视觉更加轻快、柔和。...系统图标,状态栏讯号强度•••••改回阶梯式,电量图标的线面比例变得更均衡一些,标签栏图标空心/实心两态变成全实心粗线条设计,配合整体设计调性。 ?

    1K90
    领券