使用Silverlight Toolkit中Rating等级控件
创始人
2024-04-29 15:51:05
0

下面就简要介绍一下Silverlight Toolkit中Rating等级控件用法。

首先,我们要在项目中添加对System.Windows.Controls.Input.Toolkit.dll的引用(位于源码包中)。

然后我们就可以到XAML中引用其名空间:

  1. xmlns:inputToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit" 

我们用下面代码声名一了Rating实例:

  1. <inputToolkit:Ratingx:NameinputToolkit:Ratingx:Name="rating"Value="0.65"ItemCount="5"HorizontalAlignment="Left"/> 

注意:ItemCount属性标识当前有几颗星。而Value属性则对应当前显示的星值数目(0-1之间)

我们通过下面代码来标识星值着色是否连续(该枚举有两个值Continuous和Individual):

  1. rating.SelectionMode=RatingSelectionMode.Continuous; 

下面我们就看一下演示效果:

   

当然该Silverlight Toolkit控件的星星排列除了水平方向,还可以是垂直方向。另外如果认为星星不好看,可以使用Blend定义一个新的图案做为评级的图标,比如我这里用了示例代码中的样式来把星星换成'圆球',最终的演示效果如下(样式代码可以下载本DEMO查看):

效果  

而相应的XAML代码如下(注意ItemContainerStyle样式绑定):

  1. <inputToolkit:RatingValueinputToolkit:RatingValue="0.65"Foreground="{x:Null}"ItemContainerStyle="{StaticResourceRatingItemStyle}" 
  2. Margin="0,4,0,0"ItemCount="5"> 
  3.  
  4.  
  5. <StackPanelOrientationStackPanelOrientation="Vertical"VerticalAlignment="Stretch"HorizontalAlignment="Stretch"/> 
  6.  
  7.  
  8.  

是不是很好玩

当然上面是通过在XAML页面上定义来实现的,下面介绍一下如果使用CS代码来创建‘等级项’。

在Rating控件中的每个星星(等级)都是一个RatingItem对象,所以我用下面代码来动态加载等级项:

  1. /// 
  2. ///加载自定义项  
  3. ///
  4.  
  5. privatevoidLoadCustomRatingItem()  
  6. {  
  7.  
  8. string[]ratingItmeArray=newstring[]{"很差","不好","一般","还行","很棒"};  
  9. foreach(stringiteminratingItmeArray)  
  10. {  
  11. RatingItemratingItem=newRatingItem(){Content=item,Foreground=  
  12. newSolidColorBrush(Colors.Blue),Margin=newThickness(12,0,12,0)};  
  13. ratingItem.SetValue(ToolTipService.ToolTipProperty,item);  
  14. customsRating.Items.Add(ratingItem);  
  15. }  
  16. rating.SelectionMode=RatingSelectionMode.Continuous;  

我们来看一下运行效果:

运行效果  
完成了这个演示,来实现一个真正的应用场景,做一个照片评级的应用。首先我们用下面XAML代码创建一个‘带图,按钮,评级控件’的类似于海报的界面。

  1. <BorderWidthBorderWidth="164"Padding="2"BorderBrush="#FFB30000"BorderThickness="1"> 
  2. <StackPanelOrientationStackPanelOrientation="Vertical"Margin="0"> 
  3. <HyperlinkButtonMarginHyperlinkButtonMargin="0"Content="汽车"HorizontalAlignment="Center"VerticalAlignment="Center"Foreground="#FF0F***9B"/> 
  4. <ImageSourceImageSource="Images/car.jpg"Width="160"Margin="9,0"/> 
  5. <inputToolkit:Ratingx:NameinputToolkit:Ratingx:Name="netflix"Value="0.65"ItemCount="5"HorizontalAlignment="Center"BorderBrush="Black"Padding="3,1,3,3"/> 
  6. <ButtonClickButtonClick="Button_Click"Content="提交"Height="30"HorizontalAlignment="Center"VerticalAlignment="Center"Padding="3,1,3,3"/> 
  7.  
  8.  

然后我们在‘评论按钮’上绑定事件代码,来显示用户评价的结果。

  1. privatevoidButton_Click(objectsender,RoutedEventArgse)  
  2. {  
  3. System.Windows.Browser.HtmlPage.Window.Alert("你将该图片的评价为:"+netflix.Value);  
  4. //netflix.Value=0;  

***我们运行一下,如下图:
    最终效果           
点击提交按钮后:
    
    点击提交按钮后          
     
当然更复杂的应用在官方的示例中有详细演示,如果大家有兴趣可以去下载运行相应示例即可。

好了,今天的内容就先到这里了。

本文来自代震军博客园文章《使用Silverlight Toolkit 等级控件---Rating

【编辑推荐】

  1. Office 2010将使用Silverlight改善用户体验
  2. 微软.NET平台主管谈Silverlight企业级开发
  3. Flash与Silverlight多领域实测对比
  4. 微软宣称Silverlight装机量超过三亿
  5. 图解Silverlight 3的7个新功能

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...