[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設定。

clip_image002

還欠甚麼呢?

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;

安裝軟體至桌面

(專案屬性的OOB功能一定要先開啟)

clip_image004

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; //不運作關閉指令

}

posted on 2010-04-21 21:15  B+  阅读(847)  评论(1编辑  收藏  举报

导航