Windows App开发之使用通知与动态磁贴

使用Toast通知示例

前面我们使用了MessageDialog来作为弹窗,这里来介绍一个更加高大上的Toast通知。

Toast通知本质上动力是由XML来提供的,一开始我还不相信不知道XML原来有这么大的威力。现在就来看看和Toast相关的知识。

1)实例化ToastNotification类。

ToastNotification toast1 = new ToastNotification(xdoc);

2)使用ToastNotificationManager来管理Toast通知,包括添加、展示、移除、获取通知等等。

ToastNotificationManager.CreateToastNotifier().Show(toast1);

3)在第一步中的xdoc就是一段XML数据,它从何而来呢?

XmlDocument xdoc = new XmlDocument();

4)上一步代码实例化了一个XML,但是它没有数据呀,数据从哪来呢?

xdoc.LoadXml(txtXML.Text);

5)这段代码就将一段Text导入了XML中。而Text数据有很多种获取方式。在下文中自然会提到。

Toast的XML模板有许多,我们可以直接来获取它们。用枚举和强大的var即可。

var items = Enum.GetNames(typeof(ToastTemplateType));

那么就正式开工了,因为重复的属性太多了我就大概设置了2个Style资源。

<Page.Resources><Style TargetType=”TextBlock” x:Key=”StyleHeaderTextBlock”><=”40″/><=”华文琥珀”/><=”HotPink”/><=”12″/></Style><Style TargetType=”Button” x:Key=”StyleToastButton”><=”180″/><=”50″/><=”Aqua”/><=”21″/><=”12″/><=”显示Toast通知” /></Style></Page.Resources>

下面是第一部分用于生成Toast通知。

<StackPanel Orientation=”Vertical” Grid.Column=”0″ Margin=”12″><TextBlock Text=”生成Toast通知” Style=”{StaticResource StyleHeaderTextBlock}”/><StackPanel Orientation=”Horizontal” HorizontalAlignment=”Left”><TextBlock FontSize=”24″ Foreground=”Wheat” Text=”请选择一个模板:” VerticalAlignment=”Center”/><ComboBox Name=”comboBoxToast” Foreground=”Green” Width=”275″SelectionChanged=”comboBoxToast_SelectionChanged”/></StackPanel><TextBox Foreground=”Green” x:Name=”txtXML” HorizontalAlignment=”Left” Width=”500″ Height=”400″ Header=”模板XML:” TextWrapping=”Wrap” FontSize=”24″/><Button Name=”btnShowToast1″ Click=”btnShowToast1_Click” Style=”{StaticResource StyleToastButton}”/></StackPanel>

后台代码也蛮容易的,利用上面讲的就好了。

public MainPage(){this.InitializeComponent();var items = Enum.GetNames(typeof(ToastTemplateType));this.comboBoxToast.ItemsSource = items;}(object sender, SelectionChangedEventArgs e){string tempt = ((ComboBox)sender).SelectedItem as string;if (!string.IsNullOrEmpty(tempt)){ToastTemplateType template = (ToastTemplateType)Enum.Parse(typeof(ToastTemplateType), tempt);XmlDocument xdoc = ToastNotificationManager.GetTemplateContent(template);txtXML.Text = xdoc.GetXml();}}(object sender, RoutedEventArgs e){if (txtXML.Text == “”)return;XmlDocument xdoc = new XmlDocument();xdoc.LoadXml(txtXML.Text);ToastNotification toast1 = new ToastNotification(xdoc);ToastNotificationManager.CreateToastNotifier().Show(toast1);}

模板是这样用的……

在src中填入图片的路径也可以在Toast中显示图像哦,赶紧试试吧……

接下来是第二段啦,,和前面的很是类似……

============>ms-winsoundevent:Notification.Mail>ms-winsoundevent:Notification.Looping.Alarm>======”{StaticResource StyleToastButton}”/></StackPanel>

上面代码中的“ms-winsoundevent:Notification.Default”都是填到src中的用于设置声音,还可以在loop、silent中设置是否循环以及是否静音,那到底该怎么用呢?应该将这些属性全部都填入到XML中。

xmlContent = string.Format(“<toast duration='{0}’>” +”<visual>” +”<binding template=’ToastText01′>” +”<text id=’1′>{1}</text>” +”</binding>” +”</visual>” +”='{3}’ silent='{4}’/>” +”</toast>”,toastDuration, msg, audioSrc, isLoop, isSilent);

上面用的xmlContent也要先定义出来,一开始设置为Empty就好。

string xmlContent = string.Empty; 最有效的资本是我们的信誉,它24小时不停为我们工作。

Windows App开发之使用通知与动态磁贴

相关文章:

你感兴趣的文章:

标签云: