Silverlight 4 新特性之NotificationWindow

2016-08-20 11:10:14来源:http://chenkai.blog.51cto.com/2023960/764889作者:chenkaiunion人点击


Silverlight4 中增加很多新特性. 相对于Silverlight 3 有了更加丰富运用. 当然对于用户而言也就有了更多的选择. 最近在更新 Silverlight 3版本时项目中关于消息通知的功能. . 原来项目中运用一个很成熟的JS库来实现消息通知. 样式比较单一. 而且更改起来比较麻烦. 而Silverlight 4 NotificationWindow 的出现则大大简化这个调用流程 .实现效果如下:



A:Silverlight 4 NotificationWindow 只在OOB模式下支持 装载本地:



B:运行效果:



C:输入认识字符点击Button按钮 在屏幕右下角:



实现步骤:


<1>页面布局-[很简单]:


<Gridx:Name="LayoutRoot"Background="White"HorizontalAlignment="Center"VerticalAlignment="Center"> <TextBoxHeight="68"HorizontalAlignment="Left"Margin="12,75,0,0"Name="textBox1"VerticalAlignment="Top"Width="441"TextWrapping="Wrap"IsTabStop="True"FontSize="12"/> <ButtonContent="GivemeTheMessage"Foreground="Red"Background="Red"Height="50"HorizontalAlignment="Left"Margin="488,84,0,0"Name="SendMessage"VerticalAlignment="Top"Width="151"/> <TextBlockHeight="35"HorizontalAlignment="Left"Margin="31,23,0,0"Name="textBlock1"Text="Silverlight4-NotificationWindow"VerticalAlignment="Top"Width="336"Foreground="Red"FontFamily="LucidaSansUnicode"FontSize="20"/> </Grid>

<2>后台编码:


publicMainPage() { InitializeComponent(); //绑定事件 this.SendMessage.Click+=newRoutedEventHandler(SendMessage_Click); } voidSendMessage_Click(objectsender,RoutedEventArgse) { //首先检测是否Application在OOB状态 if(Application.Current.IsRunningOutOfBrowser) { NotificationWindownewwindow=newNotificationWindow(); newwindow.Height=100; newwindow.Width=400; newwindow.Closed+=newEventHandler(newwindow_Closed);//设置内容 TextBlockmsgblock=newTextBlock{Text=this.textBox1.Text,FontSize=12};//尝试一下展示图片 Imageimg=newImage(); img.Source=newBitmapImage(newUri("../Images/danzeer.jpg",UriKind.RelativeOrAbsolute)); img.Width=50; img.Height=50;Gridcontentgrid=newGrid(); //contentgrid.VerticalAlignment=VerticalAlignment.Top; //contentgrid.HorizontalAlignment=HorizontalAlignment.Left;contentgrid.Children.Add(msgblock); contentgrid.Children.Add(img); newwindow.Content=contentgrid;//展示 newwindow.Show(5000);//展示3秒钟} else{ MessageBox.Show("尚未初始化为OOB模式!"); } } voidnewwindow_Closed(objectsender,EventArgse) { MessageBox.Show("这是我的关闭事件!"); }

从后台代码就能看出 首先new 一个NotificationWindow, 设置宽高属性和内容. 然后通过Show(“显示毫秒数”)方法显示出来.出现在屏幕右下角 实现消息通知功能.


<3>注意事项:


其实看到这个NotificationWindow 就想到XP系统托盘通知效果基本类似. 在Silverlight也能做成这样的效果. 关键在于对NotificationWindow 用户自定义美化


(1)NotificationWindow 宽度和高度目前是固定设置 400X100. 既宽度:400 高度:100 必须设置固定当前值.


(2)NotificationWindow 支持用户交互. 但目前只支持鼠标操作.


(3)因为Silverlight暂时还没有消息队列来控制. 所以一次无法同时显示多个NotificationWindow .


(4)默认的NotificationWindow 有点粗糙. SL 支持用户自定义NotificationWindow 关于具体相关属性和操作 资料请参见MSDNNotificationWindow类


Silverlight 4NotificationWindow 实现代码见附件。


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台