[VS2010 Online]Silverlight 4.0 New Feature - NotificationWindow
在 Silverlight 4.0 提供了一個新的功能 – NotificationWindow,這個新功能就像在 Outlook
收到新信時,會彈出一個視窗提醒你收到信一樣。這個功能目前只能在 Out-Of-Browser(OOB)使用。
我們利用這個功能來設計一個可以提醒自己已經工作多久的小工具。
1.
首先,在 Xaml 程式碼中放置一個 Button 按鈕。
2.
寫入下列程式碼:
1: public partial class MainPage : UserControl
2: {
3: private DispatcherTimer timer;
4: private bool isTicking = false;
5:
6: public MainPage()
7: {
8: InitializeComponent();
9: this.uxBtn.Click += new RoutedEventHandler(uxBtn_Click);
10: }
11:
12: void uxBtn_Click(object sender, RoutedEventArgs e)
13: {
14: if (!isTicking)
15: {
16: timer = new DispatcherTimer();
17: timer.Interval = TimeSpan.FromMinutes(50);
18: timer.Tick += new EventHandler(timer_Tick);
19: timer.Start();
20: }
21: else
22: {
23: timer.Stop();
24: }
25: isTicking = !isTicking;
26: }
27:
28: void timer_Tick(object sender, EventArgs e)
29: {
30:
31: var txt = new TextBlock() { Text = "你已經工作50分鐘了,該休息一下囉!", FontSize = 32, Foreground=new SolidColorBrush(Color.FromArgb(255, 255, 0, 0))};
32:
33: if (Application.Current.IsRunningOutOfBrowser)
34: {
35: NotificationWindow w = new NotificationWindow();
36: w.Content = txt;
37: w.Show(2000);
38: }
39: }
40: }
這段程式碼透過 DispatcherTimer 去處理時間計時,預設每50分鐘會去觸發 timer_Tick 事件。
然後可以在 NotificationWindow 放置一個 TextBlock,裡面寫上要提醒自己要休息的字語。
然後由 Show()方法以及所包含的參數去決定顯示時間長短(百萬毫秒)。
3.
然後按下 F5 執行,並選擇安裝到電腦上:
按下OK。
4.
按下[啟動工作計時]按鈕
5.
當到達五十分鐘時,就會彈出提醒你該休息一下的視窗。如果已不需要提醒,可以直接關閉這個
Silverlight 應用程式。
這個 NotificationWindow 的用途實在很多,裡面也可以放置多種物件。
但是如果在這個視窗去切換全螢幕、按下HyperLink按鈕導向某個頁面、顯示
SaveFileDialog 以及 OpenfileDialog時,這個作為都不會產生作用。
你可以試看看去創造不一樣的用法。 Just Code For Fun!
參考資料:
1. http://msdn.microsoft.com/zh-tw/library/system.windows.threading.dispatchertimer(VS.95).aspx
2. http://msdn.microsoft.com/en-us/library/system.windows.notificationwindow(VS.96).aspx
3. http://msdn.microsoft.com/en-us/library/system.windows.notificationwindow(VS.96).aspx
如果您有微軟技術開發的問題,可以到MSDN Forum發問。
如果您有微軟IT管理的問題,可以到TechNet Forum發問喔。