[Teaching] [Silverlight 4] OOB(Out-of-browser )常用Code
2010-04-21 21:15
281 查看
話說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『是否是取得最大控制權』做判斷)
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
安裝軟體至桌面
(專案屬性的OOB功能一定要先開啟)
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
OOB時取得框架Windows 事件
先註冊事件
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
抓事件
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
在雲端的世界裡,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;
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
安裝軟體至桌面
(專案屬性的OOB功能一定要先開啟)
App.Current.Install();
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
OOB時取得框架Windows 事件
先註冊事件
if (App.Current.IsRunningOutOfBrowser && App.Current.HasElevatedPermissions) { App.Current.MainWindow.Closing += new EventHandler<System.ComponentModel.ClosingEventArgs>(MainWindow_Closing); }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
抓事件
if (e.IsCancelable) { e.Cancel = true; //不運作關閉指令 }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
相关文章推荐
- 转载:Silverlight4.0 OOB(Out-of-browser )常用Code
- 稳扎稳打Silverlight(44) - 4.0浏览器外运行(Out Of Browser)之OOB的增强及其新增的NotificationWindow
- 扎稳打Silverlight(44) - 4.0浏览器外运行(Out Of Browser)之OOB的增强及其新增的NotificationWindow
- 稳扎稳打Silverlight(44) - 4.0浏览器外运行(Out Of Browser)之OOB的增强及其新增的NotificationWindow
- Silverlight学习之 out of browser
- Silverlight Out-Of-Browser 打开网页浏览器
- [Tips] [Silverlight] Silverlight OOB (Out-of-browser )Debug兩三事-設定起始專案
- Silverlight之out of Browser模式
- 一起谈.NET技术,Silverlight实例教程 - Out of Browser音乐播放器
- Silverlight实例教程 - Out of Browser在线更新和Silent安装
- Silverlight实例教程 - Out of Browser配置,安装和卸载
- Silverlight实例教程 - Out of Browser存取本地文件系统
- Silverlight实例教程 - Out of Browser与Office的互操作
- 稳扎稳打Silverlight(45) - 4.0浏览器外运行(Out Of Browser)之被信任的应用程序(Trusted Application)
- 稳扎稳打Silverlight(41) - 3.0Tip/Trick之GPU 加速, Out-Of-Browser, 应用程序库缓存, 合并 ResourceDictionary, 应用程序扩展服务,
- 一起谈.NET技术,Silverlight实例教程 - Out of Browser与Office的互操作
- Silverlight实例教程 - Out of Browser与COM互操作实例 推荐
- Silverlight实例教程 - Out of Browser配置,安装和卸载
- Silverlight实例教程 - Out of Browser与Office的互操作
- 稳扎稳打Silverlight(41) - 3.0Tip/Trick之GPU 加速, Out-Of-Browser, 应用程序库缓存, 合并 ResourceDictionary, 应用程序扩展服务, Silverlight 插件对象