Silverlight 4 全屏
??? 這幾天的網絡大戰,打的真熱鬧呀,可惜苦了我們這些網民,最苦的是我裝的防御是360,聊天是QQ,弄的上QQ時不能上360,兩個NC呀。一想就火大,還是看我的Silverlight吧。
??? Silverlight 4 全屏很簡單就一行代碼:Application.Current.Host.Content.IsFullScreen=true,進入全屏后可按Esc退出全屏模式,也可以放過按鈕如:
???? <Button? Content="全屏" Height="23" HorizontalAlignment="Left" Margin="168,195,0,0" Name="button1"???
????? VerticalAlignment="Top" Width="75" Click="button1_Click"/>
??按鈕事件:
????? private void button1_Click(object sender, RoutedEventArgs e)
??????? {
?????????????? App.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
????????}
????? app和application是一個意思
??
??? 這樣就可以實習點擊下按鈕就進入全屏,再點下就退出全屏。不過Silverlight安全問題做的有點過分了,搞的全屏模式下鍵盤無法法輸入。后來看了下資料原來Silverlight運行在安全沙盒中,全屏后只能用有限的幾個鍵:UP ,DOWN ,LEFT ,RIGHT ,SPACEBAR,TAB,PAGE UP,PAGE DOWN,HOME,END,ENTER。 這幾個鍵全是為播放器準備的。
?
??? 要突破Silverlight的安全限制,Silverlight4.0提供了解決方案:OUt-of-Browser支持。這個功能只需要配置即可,配置的步驟如下 :
在"解決方案資源瀏覽器"中,選擇要為其啟用瀏覽器外支持的 Silverlight 項目。
在"項目"菜單上,選擇項目名稱"屬性"。
在"Silverlight"選項卡上,選擇"允許在瀏覽器外運行應用程序"。
單擊"瀏覽器外設置"。
隨即出現"Out-of-Browser Settings"對話框。
為指示的字段指定值,然后單擊"確定"。window Title和Shortcut name可選填。?
??? 鍵盤不能輸入的問題終于得解。有了Out-of-Browser支持,Silverlight的全屏就更完善了。Out-of-Browser支持還拓展了silverlight的使用空間,讓silverlight脫離了僅僅是web應用的層面,也可以做桌面程序了。
????
???? 在全屏下還要注意一點,比如界面上放一張圖片和一個按鈕,
?<Image x:Name="images"?? Source="image/s.jpg"></Image>
<Button? Content="全屏" Height="23" HorizontalAlignment="Left" Margin="168,195,0,0" Name="button1"???
????? VerticalAlignment="Top" Width="75" Click="button1_Click"/>
?
???? 生成網頁,如下:
??
?? 點全屏:
??
?? 按鈕位置就變動了,這不是我們想要的效果。
?? 要解決這個問題很簡單,可以設置Image控件的stretch屬性,將它設置為fill,再看下效果:
??
??
??是解決了位置的問題了,又出現新的問題,圖片相對變大了而按鈕沒有,感覺不怎么協調。
??可以用個小方法,讓它按比例變大,設個方法,當按全屏時用這個方法,讓控件相對變大就行了。
?? width:控件的寬?? height:控件的高
??System.Windows.Browser.HtmlPage.Window.Eval("screen.height");? 獲取你電腦的分辨率的高
? System.Windows.Browser.HtmlPage.Window.Eval("screen.width");?獲取你電腦的分辨率的寬
??Application.Current.Host.Content.ActualHeight;獲取你當前窗體的高
??Application.Current.Host.Content.ActualWidth;獲取你當前窗體的寬???????? 這里的窗體指瀏覽器的內容窗體
??放大的控件的寬=width*電腦的寬/窗體的寬?????????
??高同上????????????????????????????????????????????????????????????? 偶比較懶
??有了這些值,就可以讓你的控件隨比例變化了。例子就自己動手吧!嘿嘿。
???
?順便附上stretch的屬性值說明:??
| None | 內容保持其原始大小。 |
| Fill | 調整內容的大小以填充目標尺寸。不保留縱橫比。 |
| Uniform | 在保留內容原有縱橫比的同時調整內容的大小,以適合目標尺寸。 |
| UniformToFill | 在保留內容原有縱橫比的同時調整內容的大小,以填充目標尺寸。如果目標矩形的縱橫比不同于源矩形的縱橫比,則對源內容進行剪裁以適合目標尺寸。 |
盡管不直觀,但在某些情況下,可以通過將 Stretch 屬性設置為 Fill 而非包括 None 在內的其他值而獲得更好的性能。使用 Stretch = Fill 時,不會有添加額外邊緣的潛在剪輯發生。除 Fill 之外的所有其他類型的拉伸都需要計算布局(例如計算居中)。除非要呈現許多圖像,否則,您可能不會注意到差異。
?
?
??
總結
以上是生活随笔為你收集整理的Silverlight 4 全屏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最强整理!Android攒了一个月的面试
- 下一篇: 最全jar包下载地址