1. 嘿嘿,坚持不懈,继续我的Silverlight之旅,创建了WCF服务,我们需要的是通过Silverlight能够应用这个服务,

比起2005,2008的服务引用做的好多了,上图:

通过右边的Discover按钮,可以搜索系统中的WebService服务,我们的RSSService当然也在此列之中,选中起个名字RSSService吧。

2.有个可以使用的服务,下面就是要提供界面了,遵循传统的方式,选用LisbBox来列出前20项最新的标题,Expression Blend2+sp1可是要必备,

这东西设计起来比VS2008要好多了,不过BUG也很多,量大的时候容易死机。上图:

为了能放置在公告栏上,特意设计成200*300的大小,此时布局带来了大问题,昨天晚上搞了一晚上都没有办法是控件位置移动到最左端,

早上尝试了一下,一定要Rebuid才行,这个Build是无法将修改的布局应用上去的。不过放到博客上去,他还是往中间移。头大了。

3.最关键的东西来了,就是怎么显示内容了,还是传统写法获得数据填充一下:

a)WebService的调用,

RssService.RssServiceClient rssClient = new SilverlightApplication2.RssService.RssServiceClient();
  rssClient.GetRssItemsCompleted +=new EventHandler<SilverlightApplication2.RssService.GetRssItemsCompletedEventArgs>(rssClient_GetRssItemsCompleted);
          rssClient.GetRssItemsAsync("http://www.codeproject.com/webservices/articlerss.aspx?cat=1");

注意:千万别忘了最后一句rssClient.GetRssItemAsync().

b)对事件的响应:

void rssClient_GetRssItemsCompleted(object sender, SilverlightApplication2.RssService.GetRssItemsCompletedEventArgs e)
        {

try
           {
               ObservableCollection<RssItem> rssItems = e.Result;
               for (int i = 0; i < rssItems.Count; i++)
               {
                   ListBoxItem item = new ListBoxItem();
                   item.Style = (Style)Application.Current.Resources["AppRssItemStyle"];
                    item.Content = rssItems[i].Title;
                   item.Tag = rssItems[i];
                   item.MouseLeftButtonUp += new MouseButtonEventHandler(item_MouseLeftButtonUp);
                    this.lstItems.Items.Add(item);
                 }
           }
           catch (Exception ex)
           {
               ListBoxItem item = new ListBoxItem();
               item.Style = (Style)Application.Current.Resources["AppRssItemStyle"];
               item.Content = ex.Message;
               this.lstItems.Items.Add(item);
           }

}

这里和传统变程的区别是,首先要自定义ListBoxItem类,建立他的样式,建立他的事件,然后添加到listbox中去。

c)Item对事件的响应

void item_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
       {
           ListBoxItem item = (ListBoxItem)sender;
           RssItem rssItem =(RssItem) item.Tag;
           if (rssItem != null)
           {
               item.Content = rssItem.Link;
               if (HtmlPage.IsPopupWindowAllowed)
               {
                   HtmlPage.PopupWindow(new Uri(rssItem.Link), null, null);
               }
               else
               {
                   HtmlPage.Window.Navigate(new Uri(rssItem.Link));
               }

}
           item.Background.SetValue(Brush.OpacityProperty, 50.0);
       }

item.Background.SetValue(Brush.OpacityProperty, 50.0);将背景的透明度设置为50,和传统的方法不同在Silverlight中设置

值一般都需要SetValue的方法,同时需要知道DependancyProperty,这个需要对各个属性有一定的了解。

  1. 明天我会继续写如何设置样式,使用State,和动画。

转载于:https://www.cnblogs.com/wanghualiang/archive/2008/12/18/1357237.html

WCF+Silverlight一个简单的RSS阅读器(二)相关推荐

  1. 用vb.net写一个简易的RSS阅读器

    先发一个做出来的效果图 哈哈!怎么样?对了DUDU,我这个还解决了看天下那个阅读器不能正常显示相对路径的图片的问题哟! 现在不管相对的还是绝对的路径的图片都能正常显示哈! 下面是源代码,没有太多注释, ...

  2. 记一个简单Android图书阅读器的制作过程

    记一个简单图书阅读器的制作过程 微澜 2018/9/27 qq:9611153 从有个想法,到到一个可用程序,断断续续几个月,花上不少的功夫,即便是简单的程序一个人写下来也是很难的.越写越是发现,想要 ...

  3. 用VB.NET写的一个简易的RSS阅读器

    源代码如下: Imports System.Xml  Imports System.Threading  Public Class Form1Class Form1  Inherits System. ...

  4. vb.net写一个简易的RSS阅读器

    十分简易哈!解决了相对图片路径不能正常显示! 可用于博客园 全文点击 http://www.cnblogs.com/aowind/archive/2005/03/16/119838.html

  5. 基于ASP.NET AJAX技术开发在线RSS阅读器(下篇)

    五.逻辑层设计 (一)添加RSS频道 在展开真正的逻辑层设计之前,先让我们简单地浏览一下下面的草图4.图4展示了我对于两个重要ASP.NET AJAX客户端控件-ListView和DataSource ...

  6. 如何在JavaScript中创建RSS阅读器应用程序

    RSS(真正简单的联合组织)是一种在线发布者用来将其内容联合到其他网站和服务的标准化格式. RSS文档 (也称为feed )是一种XML文档 ,其中包含发布者希望分发的内容. 几乎所有在线新闻网站和博 ...

  7. 使用原子电子和vue.js制作的简单RSS阅读器

    RSS阅读器 (RSS Reader) Simple Desktop RSS Reader made using VueJS. 使用VueJS制作的简单桌面RSS阅读器. Download Sourc ...

  8. 使用Python编写RSS阅读器(一)

    使用Python编写RSS阅读器(一) 最近想写一个Python的RSS阅读器. 先来了解一下什么是RSS.所谓的RSS,即Really Simple Syndication(真正简单的信息聚合),它 ...

  9. Android Rss阅读器

    前言 前几天去北京面试,题目是让我解析一下腾讯的Rss.之前虽然知道xml,但是自己从来没有去学习怎么解析,在网上查一些例子,但是就是没有解析出来.现在看看还蛮好笑的,因为我那时候是使用sax解析xm ...

最新文章

  1. 2021年大数据Kafka(十):kafka生产者数据分发策略
  2. 阿里云LinkIOTEdge物理边缘计算流程
  3. LeetCode 54. Spiral Matrix--Python解法--螺旋排序
  4. 《预训练周刊》第21期:FlipDA:有效且稳健的数据增强小样本学习、开放域低资源适应的生成式聊天机器人...
  5. 安卓 静态文件读取 staticFile
  6. python 在互联网应用是如此强大
  7. sql 解锁被锁定的账号
  8. sudo修改文件夹名字_【转载】MAC系统修改帐号短名和个人文件夹名称
  9. 阿里云 Debian 9.2 安装 Java Web 环境
  10. 6 Linux之bash环境配置
  11. 自学python编程笔记本推荐-python自学教程 | 3万字为你详解每个重要知识点
  12. (转)JVM——内存管理和垃圾回收
  13. bat 暂停一段时间_BAT面试问是否具备3年工作经验,这么回答绝了!
  14. Oracle 小写金额转换为大写金额
  15. 【信息系统项目管理师】【理解+题目】【信息系统与信息化】
  16. golang mgo 使用
  17. 雷电网络REST API官方文档【中文版】
  18. 用词误导:无症状指的是无肺炎症状,发烧40度、很疼痛都是无症状
  19. 那些有趣又实用的开源人工智能项目 Top 10
  20. uploadifive struts2实现图片上传

热门文章

  1. 使用Canu对三代测序进行基因组组装
  2. 【转载】通过sqlserver日志恢复误删除的数据
  3. 企业融入租时代 谋求轻资产化高效运营
  4. C#中方法的参数的四种类型(转)
  5. 图片流量节省大杀器:基于CDN的sharpP自适应图片技术实践
  6. 路由协议有类和无类的区别
  7. 简单实用的php分页类(多种分页方式)
  8. 调研CSS选择器在浏览器中的支持情况
  9. 推荐NHibernate新书:NHibernate 3.0 CookBook[附下载]
  10. 题解——HDU 1848 Fibonacci again and again