[Teaching] [Silverlight 4] OOB(Out-of-browser )常用Code
話說Silverlight 4.0的OOB(Out-of-browser )更加強大了,使得Silverlight應用程式,更接近Win From或WPF。
在雲端的世界裡,Silverlight 4.0讓你從瀏覽器開始,繼續維持原有習慣工作在桌面上。
而比起3.0,OOB有了哪些變化。
1. 自訂Window Style
2. 搭配Notification顯示浮動訊息。
3. Install menu不用再跑到OutOfBrowserSettings.xml設定。
還欠甚麼呢?
1. 最小化到系統列。
2. 自訂視窗樣式。
3. 自訂安裝畫面
4. 自訂安裝進度
其中最小化到系統列,我覺得是非常實用的,試想一下,上班時候,開一個「開心農場」,縮到系統列,程式持續運作,當有人偷菜時,軟體透過Notification用浮動視窗告訴你,你的菜被偷啦!再趕緊放大視窗處裡,老闆來時,馬上縮到系統列,一切神不知鬼不覺,多麼的實用XD。不過在SL4.0的OOB裡並沒有這樣的功能(亦或是我不知道)我們就再等等吧。
SL4.0 OOB常用的CODE
自訂Window Style
(需搭配App.Current.IsRunningOutOfBrowser 『是否運作於瀏覽器外』&& App.Current.HasElevatedPermissions『是否是取得最大控制權』做判斷)
App.Current.MainWindow.DragResize(WindowResizeEdge.Bottom); //拖曳視窗下方大小
App.Current.MainWindow.DragResize(WindowResizeEdge.BottomLeft);//拖曳視窗左下大小
App.Current.MainWindow.DragResize(WindowResizeEdge.BottomRight);//拖曳視窗右下大小
App.Current.MainWindow.DragResize(WindowResizeEdge.Left);//拖曳視窗左方大小
App.Current.MainWindow.DragResize(WindowResizeEdge.Right);//拖曳視窗右方大小 App.Current.MainWindow.DragResize(WindowResizeEdge.Top);//拖曳視窗上方大小
App.Current.MainWindow.DragResize(WindowResizeEdge.TopLeft);//拖曳視窗上左大小
App.Current.MainWindow.DragResize(WindowResizeEdge.TopRight);//拖曳視窗上右大小
App.Current.MainWindow.DragMove();//拖曳視窗
App.Current.MainWindow.Close();//視窗關閉 App.Current.MainWindow.WindowState = WindowState.Minimized;//視窗最大化 App.Current.MainWindow.WindowState == WindowState.Normal//恢復視窗預設大小 App.Current.MainWindow.WindowState = WindowState.Maximized;//視窗最小化
//視窗起始位置(可以寫進app.xaml裡)
App.Current.MainWindow.Left = 1;
App.Current.MainWindow.Right= 1;
安裝軟體至桌面
App.Current.Install();
OOB時取得框架Windows 事件
先註冊事件
if (App.Current.IsRunningOutOfBrowser && App.Current.HasElevatedPermissions) { App.Current.MainWindow.Closing += new EventHandler<System.ComponentModel.ClosingEventArgs>(MainWindow_Closing); }
抓事件
if (e.IsCancelable) { e.Cancel = true; //不運作關閉指令 }
Copyright © 2010 比比触控游戏工作室WWW.BPLUSGAME.COM