大佬教程收集整理的这篇文章主要介绍了4.Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出。,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
继上节动态的添加Rectangle矩形框所讲。在实际应用中,我们动态添加矩形框,然后使用鼠标右键点击该矩形框,得到一个弹出窗口,再为此矩形框关联 一些实际信息。即可实现用户自定义的配置页面。本节将讲两个小技巧:一.鼠标右键菜单。二.Silverlight全屏模式。
一.使用鼠标右键菜单。在这里我们需要单独引入两个Dll文件。(右键项目名称-->“添加引用”-->寻找到System.Windows.Controls.Input.Toolkit.dll[可以从本文源代码中找到])
System.Windows.Controls.Input.Toolkit;
MainPage.xaml代码如下
- <UserControl x:Class=@H_673_37@"SLRightMouseButton.MainPage"
- xmlns:my=@H_673_37@"clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit"
- xmlns=@H_673_37@"http://scheR_324_11845@as.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x=@H_673_37@"http://scheR_324_11845@as.microsoft.com/winfx/2006/xaml"
- Width=@H_673_37@"640" Height=@H_673_37@"480">
- <Canvas x:Name=@H_673_37@"LayoutRoot">
- <Rectangle x:Name=@H_673_37@"ti" Width=@H_673_37@"150" Height=@H_673_37@"150" radiusX=@H_673_37@"5" radiusY=@H_673_37@"5" Fill=@H_673_37@"Blue"></Rectangle>
- <my:ContextMenuservice.ContextMenu>
- <my:ContextMenu Name=@H_673_37@"mymenu">
- <my:MenuItem Header=@H_673_37@"关联地区" Click=@H_673_37@"MenuItem_Click"/>
- <my:Separator/>
- <my:MenuItem Header=@H_673_37@"关联页面" Click=@H_673_37@"MenuItem_Click"/>
- <my:Separator/>
- <my:MenuItem Header=@H_673_37@"进入全屏" Click=@H_673_37@"MenuItem_Click"/>
- </my:ContextMenu>
- </my:ContextMenuservice.ContextMenu>
- </Canvas>
- </UserControl>
在这里很明显是为名为ti的Rectangle矩形区域之内可以被右键点击,然后右键点击得到右键菜单“关联地区”“关联页面”“进入全屏”三项。这三个项目都加在到同一个点击事件MenuItem_Click中处理。
MainPage.xaml.cs文件关键代码处理MenuItem_Click事件代码如下
- /// <sum@R_262_11035@>
- /// 鼠标右键选择相应的项的事件
- /// </sum@R_262_11035@>
- /// <param name=@H_673_37@"sender"></param>
- /// <param name=@H_673_37@"e"></param>
- private void MenuItem_Click(object sender, routedEventArgs E)
- {
- MenuItem menuItem = (MenuItem)sender;
- switch (menuItem.Header.ToString())
- {
- case @H_673_37@"关联地区":
- messageBox.Show(@H_673_37@"关联地区");//在此可以弹出一个窗口显示关联地区的子窗口。然后选择相应的数据,为此Rectangle关联地区
-
- break;
- case @H_673_37@"关联页面":
- messageBox.Show(@H_673_37@"关联页面");//在此可以弹出一个窗口显示关联页面的子窗口。然后选择相应的数据,为此Rectangle关联页面
- break;
- case @H_673_37@"进入全屏":
- menuItem.Header = FullScreens(menuItem.Header.ToString());//调用FullScreens函数来设置当前是否全屏,以及获取下次点击鼠标右键获得的右键菜单Header字。
- break;
- case @H_673_37@"取消全屏":
- menuItem.Header = FullScreens(menuItem.Header.ToString());
- break;
- default:
- break;
- }
- mymenu.IsOpen = false;//右键菜单关闭
- }
- /// <sum@R_262_11035@>
- /// 是否进入全屏
- /// </sum@R_262_11035@>
- /// <param name=@H_673_37@"IsScreen">全屏参数</param>
- /// <returns></returns>
- private String FullScreens(String IsScreen)
- {
- Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
- if (IsScreen == @H_673_37@"进入全屏")
- {
- IsScreen = @H_673_37@"取消全屏";
- }
- else
- {
- IsScreen = @H_673_37@"进入全屏";
- }
- return IsScreen;
- }
- }
在代码中 使用MenuItem menuItem = (MenuItem)sender;捕捉到触发本事件的对象,然后判断当前对象的Header的值是多少?然后进行相应的处理就可以了。值得注意的是这里牵扯到了我们今天需要将的第二个小知识点。
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
以上是大佬教程为你收集整理的4.Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出。全部内容,希望文章能够帮你解决4.Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出。所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。