(18):Silverlight 2 综合实例之RSS阅读器
概述
界面布局
<Grid.RowDefinitions><RowDefinition Height="50"></RowDefinition><RowDefinition Height="20"></RowDefinition><RowDefinition Height="*"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions><ColumnDefinition Width="240"></ColumnDefinition><ColumnDefinition Width="*"></ColumnDefinition> </Grid.ColumnDefinitions>
<StackPanel x:Name="Header" Orientation="Horizontal"Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"><Image Source="Rss.png" Width="32" Height="32" Margin="10 0 10 0"></Image><Border Style="{StaticResource titleBorder}"><TextBlock Text="基于Silverlight的RSS阅读器" Foreground="#FFFFFF"VerticalAlignment="Center" Margin="12 0 0 0"></TextBlock></Border><WatermarkedTextBox x:Name="feedAddress" Width="300" Height="35"FontSize="16" Margin="10 0 10 0"><WatermarkedTextBox.Watermark><TextBlock Text="请输入有效的RSS地址" VerticalAlignment="Center"Foreground="#FBA430" FontSize="16"></TextBlock></WatermarkedTextBox.Watermark></WatermarkedTextBox><Button x:Name="displayButton" Style="{StaticResource button}"Content="显 示" Click="displayButton_Click"></Button><Button x:Name="fullScreenButton" Style="{StaticResource button}"Content="全 屏" Click="fullScreenButton_Click"></Button> </StackPanel>
<Style x:Key="button" TargetType="Button"><Setter Property="Width" Value="100"></Setter><Setter Property="Height" Value="35"></Setter><Setter Property="Background" Value="#FBA430"></Setter><Setter Property="Foreground" Value="#FBA430"></Setter><Setter Property="FontSize" Value="16"></Setter> </Style> <Style x:Key="titleBorder" TargetType="Border"><Setter Property="CornerRadius" Value="10"></Setter><Setter Property="Width" Value="220"></Setter><Setter Property="Height" Value="40"></Setter><Setter Property="Background"><Setter.Value><LinearGradientBrush StartPoint="0,0"><GradientStop Color="#FBA430" Offset="0.0" /><GradientStop Color="#FEF4E7" Offset="0.5" /><GradientStop Color="#FBA430" Offset="1.0" /></LinearGradientBrush></Setter.Value></Setter> </Style>
定义分割线,用Rectangle来表示:
<StackPanel Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" VerticalAlignment="Center"><Rectangle Style="{StaticResource rectangle}"/> </StackPanel>
<Style x:Key="rectangle" TargetType="Rectangle"><Setter Property="Width" Value="780"></Setter><Setter Property="Height" Value="5"></Setter><Setter Property="RadiusX" Value="3"></Setter><Setter Property="RadiusY" Value="3"></Setter><Setter Property="Fill"><Setter.Value><LinearGradientBrush StartPoint="0,0"><GradientStop Color="#FEF4E7" Offset="0.0" /><GradientStop Color="#FBA430" Offset="1.0" /></LinearGradientBrush></Setter.Value></Setter> </Style>
定义左边的列表区,用ListBox来显示,并且定义ItemTemplate:
<ListBox x:Name="PostsList" Grid.Column="0" Grid.Row="2"Margin="10 5 5 10" SelectionChanged="PostsList_SelectionChanged"><ListBox.ItemTemplate><DataTemplate><TextBlock Text="{Binding Title.Text}" TextWrapping="Wrap" Width="200"/></DataTemplate></ListBox.ItemTemplate> </ListBox>
<StackPanel x:Name="Detail" Grid.Column="1" Grid.Row="2"><Border CornerRadius="10" Background="#CDFCAE" Margin="10 5 10 10"Width="540" Height="40"><TextBlock Text="{Binding Title.Text}" TextWrapping="Wrap"VerticalAlignment="Center" Foreground="Red"/></Border><Border CornerRadius="10" Background="#CDFCAE" Margin="10 5 10 10"Width="540" Height="300"><TextBlock Text="{Binding Summary.Text}" TextWrapping="Wrap"/></Border><Border CornerRadius="10" Background="#CDFCAE" Margin="10 5 10 10"Width="540" Height="40"><StackPanel Orientation="Horizontal"><TextBlock Text="评论日期:" TextWrapping="Wrap"Foreground="Red" VerticalAlignment="Center"/><TextBlock Text="{Binding PublishDate}" TextWrapping="Wrap"Foreground="Red" VerticalAlignment="Center"/></StackPanel></Border> </StackPanel>
实现功能
/// <summary> /// 显示列表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void displayButton_Click(object sender, RoutedEventArgs e) {Uri uri = new Uri(feedAddress.Text);WebRequest request = (WebRequest)WebRequest.Create(uri);request.BeginGetResponse(new AsyncCallback(responseReady), request); } void responseReady(IAsyncResult asyncResult) {WebRequest request = (WebRequest)asyncResult.AsyncState;WebResponse response = (WebResponse)request.EndGetResponse(asyncResult);XmlReader reader = XmlReader.Create(response.GetResponseStream());SyndicationFeed feed = SyndicationFeed.Load(reader);PostsList.ItemsSource = feed.Items; }
/// <summary> /// 查看详细信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PostsList_SelectionChanged(object sender, SelectionChangedEventArgs e) {SyndicationItem item = PostsList.SelectedItem as SyndicationItem;Detail.DataContext = item; }
/// <summary> /// 全屏显示 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void fullScreenButton_Click(object sender, RoutedEventArgs e) {Content contentObject = Application.Current.Host.Content;contentObject.IsFullScreen = !contentObject.IsFullScreen; }
运行效果
结束语
本文出自 “TerryLee技术专栏” 博客,请务必保留此出处http://terrylee.blog.51cto.com/342737/67256
本文出自 51CTO.COM技术博客
转载于:https://www.cnblogs.com/GT_Andy/archive/2009/07/28/1922018.html
(18):Silverlight 2 综合实例之RSS阅读器相关推荐
- 一步一步学Silverlight 2系列(18):综合实例之RSS阅读器
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- PHP 实例 - AJAX RSS 阅读器
PHP 实例 - AJAX RSS 阅读器 RSS 阅读器用于阅读 RSS Feed. AJAX RSS 阅读器 在下面的实例中,我们将演示一个 RSS 阅读器,通过它,来自 RSS 的内容在网页不进 ...
- Windows Phone开发基础(11)实现一个RSS阅读器
实现一个RSS阅读器,通过你输入的RSS地址来获取RSS的信息列表和查看RSS文章中的详细内容.RSS阅读器是使用了WebClient类来获取网络上的RSS的信息,然后再转化为自己定义好的RSS实体类 ...
- rss阅读器保存html文件,轻量级RSS阅读器网页版:selfoss安装教程
说明:关于RSS阅读器,我们知道的有Feedbin.FreshRSS等,功能都挺强大的,这里就再介绍个轻量级的RSS阅读器selfoss,使用起来是非常简单的,界面颜值也还不错,支持很多种订阅和网站, ...
- 用JSP实现基于Web的RSS阅读器
2019独角兽企业重金招聘Python工程师标准>>> 一 RSS介绍 根据维基百科(http://zh.wikipedia.org/wiki/RSS)的定义,"RSS是一 ...
- Android开发RSS阅读器
RSS阅读器的Logo: RSS阅读器是一种软件或是说一个程序,这种软件可以自由读取RSS和Atom两种规范格式的文档,且这种读取RSS和Atom文档的软件有多个版本,由不同的人或公司开发,有着不同的 ...
- android rss_Android RSS阅读器应用程序
android rss In this tutorial, we'll be discussing Android RSS Reader and develop an RSS Feed Reader ...
- 使用百度Clouda框架创建RSS阅读器应用
什么是Clouda? Clouda是百度的一款开源NodeJs轻应用框架,拥有百度强大的技术支持,实现快速开发.优化SEO.易部署等特性,提供简单易用的依赖管理模块化开发环境. 详细信息,请猛击Clo ...
- 计算机毕业设计Android新闻RSS阅读器客户端app(源码+系统+mysql数据库+Lw文档)
项目介绍 基于Google Android 平台的新闻阅读器的开发过程.首先根据Google android market上面的数据,对给予Google android 移动平台的新闻阅读器进行了需求 ...
最新文章
- MPB:南农成艳芬组-瘤胃微生物体外发酵过程与注意事项
- python --闭包学习
- cv2.fillConvexPoly填充多边形
- mysql服务重启后不见了_一次诡异的Mysql服务不断重启故障排查
- MVC源码学习之AuthorizeAttribute
- 关于string.Template的简单介绍
- 前端学习(2182):keep-alive及其他问题
- show一下自己的文档编写功底
- [大学回忆录-思想]一种能力的培养
- python自动化之djangoform表单验证
- 计算几何-判断两条线段是否相交
- (转载)网络互联参考模型(详解)
- Python 数据挖掘(一) 模块安装部署 numpy等
- 各种学习网址总结-程序猿值得拥有 持更
- 银行柜员网申计算机水平要求高吗,银行笔试通过率:看你网申如何?
- 运营Tumblr的几个建议-教你成为tumblr达人
- 从药价高昂引申的思考
- 前后端分离项目,有什么优缺点
- JS数组方法shift()、unshift()用法实例分析
- javashop技术培训总结,架构介绍,Eop核心机制
热门文章
- python access 源码_连接的微软Access数据库,这是一个轻量级的Python模块(MDB格式)...
- html+字体图标找不到字体,bootstrap中不显示字体图标问题怎么解决?
- vue delete删除json数组_vue面试题总结(二)
- python模块如何导入解释器_无法从嵌入式解释器导入内置模块(仅限Windows)
- 计算机虚拟现实技术论文好写吗,虚拟现实技术的论文
- kafka是存储到本地磁盘么_Kafka 中的消息存储在磁盘上的目录布局是怎样的?
- 没有bug队——加贝——Python 练习实例 35,36
- flatform installer web 安装php_web安装平台-微软web服务器配置安装工具(Web Platform Installer)5.0 官方最新版-东坡下载...
- mongodb java数组_MongoDB 基础java数据类型
- php 解析java map,java_java遍历Map的几种方法分析,本文实例分析了java遍历Map的几 - phpStudy...