Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出
說明:本文出處:http://www.cnblogs.com/chengxingliang/archive/2011/02/14/1954399.html#2627673(非常感謝)
?
在實際應用中,我們動態添加矩形框,然后使用鼠標右鍵點擊該矩形框,得到一個彈出窗口,再為此矩形框關聯一些實際信息。即可實現用戶自定義的配置頁面。本節將講兩個小技巧:一.鼠標右鍵菜單。二.Silverlight全屏模式。
???? 一.使用鼠標右鍵菜單。在這里我們需要單獨引入兩個Dll文件。(右鍵項目名稱-->“添加引用”-->尋找到System.Windows.Controls.Input.Toolkit.dll[可以從本文源代碼中找到])
???? System.Windows.Controls;
???? System.Windows.Controls.Input.Toolkit;
???? MainPage.xaml代碼如下
View Code 1 <UserControl x:Class="SLRightMouseButton.MainPage" 2 3 xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit" 4 5 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 6 7 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 8 9 Width="640" Height="480"> 10 11 <Canvas x:Name="LayoutRoot"> 12 13 <Rectangle x:Name="ti" Width="150" Height="150" RadiusX="5" RadiusY="5" Fill="Blue"></Rectangle> 14 15 <my:ContextMenuService.ContextMenu> 16 17 <my:ContextMenu Name="mymenu"> 18 19 <my:MenuItem Header="關聯地區" Click="MenuItem_Click"/> 20 21 <my:Separator/> 22 23 <my:MenuItem Header="關聯頁面" Click="MenuItem_Click"/> 24 25 <my:Separator/> 26 27 <my:MenuItem Header="進入全屏" Click="MenuItem_Click"/> 28 29 </my:ContextMenu> 30 31 </my:ContextMenuService.ContextMenu> 32 33 </Canvas> 34 35 </UserControl>在這里很明顯是為名為ti的Rectangle矩形區域之內可以被右鍵點擊,然后右鍵點擊得到右鍵菜單“關聯地區”“關聯頁面”“進入全屏”三項。這三個項目都加在到同一個點擊事件MenuItem_Click中處理。
MainPage.xaml.cs文件關鍵代碼處理MenuItem_Click事件代碼如下
View Code 1 /// <summary> 2 3 /// 鼠標右鍵選擇相應的項的事件 4 5 /// </summary> 6 7 /// <param name="sender"></param> 8 9 /// <param name="e"></param> 10 11 private void MenuItem_Click(object sender, RoutedEventArgs e) 12 13 { 14 15 MenuItem menuItem = (MenuItem)sender; 16 17 switch (menuItem.Header.ToString()) 18 19 { 20 21 case "關聯地區": 22 23 MessageBox.Show("關聯地區");//在此可以彈出一個窗口顯示關聯地區的子窗口。然后選擇相應的數據,為此Rectangle關聯地區 24 25 26 27 break; 28 29 case "關聯頁面": 30 31 MessageBox.Show("關聯頁面");//在此可以彈出一個窗口顯示關聯頁面的子窗口。然后選擇相應的數據,為此Rectangle關聯頁面 32 33 break; 34 35 case "進入全屏": 36 37 menuItem.Header = FullScreens(menuItem.Header.ToString());//調用FullScreens函數來設置當前是否全屏,以及獲取下次點擊鼠標右鍵獲得的右鍵菜單Header字。 38 39 break; 40 41 case "取消全屏": 42 43 menuItem.Header = FullScreens(menuItem.Header.ToString()); 44 45 break; 46 47 default: 48 49 break; 50 51 } 52 53 mymenu.IsOpen = false;//右鍵菜單關閉 54 55 } 56 57 /// <summary> 58 59 /// 是否進入全屏 60 61 /// </summary> 62 63 /// <param name="IsScreen">全屏參數</param> 64 65 /// <returns></returns> 66 67 private string FullScreens(string IsScreen) 68 69 { 70 71 Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen; 72 73 if (IsScreen == "進入全屏") 74 75 { 76 77 IsScreen = "取消全屏"; 78 79 } 80 81 else 82 83 { 84 85 IsScreen = "進入全屏"; 86 87 } 88 89 return IsScreen; 90 91 } 92 93 }在代碼中 使用MenuItem menuItem = (MenuItem)sender;捕捉到觸發本事件的對象,然后判斷當前對象的Header的值是多少?然后進行相應的處理就可以了。值得注意的是這里牽扯到了我們今天需要將的第二個小知識點。
??????? 二.Silverlight的全屏模式的進入。
? Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen; ??????? 就是這句簡單的代碼將可以讓你的Silverlight程序進入或者退出全屏模式。
??????? 本實例源碼基于Silverlight 4.0和VS 2010開發。
??????? 本小節的源碼附上點擊? http://files.cnblogs.com/chengxingliang/SLRightMouseButton.rar
??????? 另外所需DLL下載點擊:System.Windows.Controls.Data.Input.rar
轉載于:https://www.cnblogs.com/zxbzl/archive/2013/03/15/2961381.html
總結
以上是生活随笔為你收集整理的Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TortoiseSVN无法查看日志和SV
- 下一篇: Script:Collect vip r