位置: 编程技术 - 正文

Windows 8 开发之上下文菜单(右键属性)的应用(windows 8 开发者预览版)

编辑:rootadmin

推荐整理分享Windows 8 开发之上下文菜单(右键属性)的应用(windows 8 开发者预览版),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:windows开发c,win8开发者模式,windows开发版本,win8开发者模式,windows开发是什么,windows开发教程,win8开发者模式,windows 开发工具,内容如对您有帮助,希望把文章链接给更多的朋友!

  在程序中,当右键单击某个对象时,会有小小的弹出菜单命令。如果你使用过Windows 8,你可能已经遇见到过上下文菜单了。经常在一些不可以选择的对象上右键单击,或者在text文本上进行操作时,会出现上下文菜单。什么时候使用上下文菜单,微软提供了非常详细的指导,下面将介绍如何实现上下文菜单。

1.确定要显示上下文菜单的位置

  当我们创建弹出菜单时,首先需要确定出被点击element所在的位置,然后将位置传递给弹出菜单控件。下面的方法是确定element的位置:复制代码代码如下: privateRect GetPoint(TextBox box)</p><p> { </p><p>      Rect temp = box.GetRectFromCharacterIndex(box.SelectionStart, false);</p><p>      GeneralTransform transform = box.TransformToVisual(null);</p><p>      Point point = transform.TransformPoint(new Point());</p><p> point.X = point.X + temp.X;</p><p> point.Y = point.Y + temp.Y;</p><p>       return new Rect(point, new Size(temp.Width, temp.Height));</p><p> }2.创建上下文菜单的选项

  1)为TextBox添加上下文菜单事件复制代码代码如下:   protected override void OnNavigatedTo(NavigationEventArgs e)</p><p> {</p><p> InputBox.ContextMenuOpening += InputBox_ContextMenuOpening;    //InputBox是UI层的TextBox控件</p><p> }   2)当离开这个页面时移除上下文菜单事件 复制代码代码如下:   protected override void OnNavigatedFrom(NavigationEventArgs e)</p><p> {</p><p> InputBox.ContextMenuOpening -= InputBox_ContextMenuOpening;</p><p> }  3)创建了一个PopupMenu菜单,并添加了一个command,然后调用ShowForSelectionAsync()方法将其显示出来。复制代码代码如下:   async void InputBox_ContextMenuOpening(object sender, ContextMenuEventArgs e)</p><p> {</p><p> e.Handled =true; //来取消原来的调用,然后创建自己的上下文菜单,并在适当的地方调用剪贴板(clipboard)</p><p>     TextBox box = sender as TextBox;</p><p>     PopupMenu menu = new PopupMenu();    //创建PopupMenu菜单</p><p> menu.Commands.Add(new UICommand("复制", null, 0));</p><p> menu.Commands.Add(new UICommand("剪切", null, 1));</p><p> menu.Commands.Add(new UICommand("粘贴", null, 2));</p><p> menu.Commands.Add(new UICommand("全选", null, 3));</p><p> menu.Commands.Add(new UICommand("删除", null, 4));</p><p> var cmd = await menu.ShowForSelectionAsync(GetPoint(box)); //这里的菜单位置也可以使用 new Rect(e.CursorLeft,e.CursorTop,0,0);   </p><p>    if (cmd != null)</p><p> { </p><p>      string text;</p><p>     DataPackage package;</p><p>       int index=(int)cmd.Id;</p><p>      switch (index)</p><p> {</p><p>        case 0:</p><p>   text = box.SelectedText;</p><p>    package =new DataPackage();</p><p>   package.SetText(text);</p><p>          Clipboard.SetContent(package);</p><p>           break;</p><p>        case 1:</p><p>   text = box.SelectedText;</p><p>   box.SelectedText ="";</p><p>    package =new DataPackage();</p><p>    package.SetText(text); </p><p>           Clipboard.SetContent(package);</p><p>          break;</p><p>       case 2:</p><p>    text =awaitClipboard.GetContent().GetTextAsync();</p><p>    box.SelectedText = text; </p><p>           break;</p><p>       case 3:</p><p>   box.SelectAll();</p><p>         break;</p><p>       case 4:</p><p>   box.SelectedText ="";</p><p>          break;</p><p> }</p><p> }</p><p> }3.使用另一种方法,实现上下文菜单

  1)先为TextBox注册右键事件,右键事件必须使用下面的方法注册,在页面上写RightTapped事件,是不起作用的。复制代码代码如下:   public MainPage()</p><p> {</p><p>      this.InitializeComponent();</p><p> ContentText.AddHandler(RightTappedEvent, new RightTappedEventHandler(ContentText_RightTapped),true);</p><p> }  2).ContentText_RightTapped方法复制代码代码如下: private async void ContentText_RightTapped(object sender, RightTappedRoutedEventArgs e)</p><p>  {</p><p>    //和 InputBox_ContextMenuOpening方法一样</p><p>  }  UI层代码:

Windows 8 开发之上下文菜单(右键属性)的应用(windows 8 开发者预览版)

  <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">

    <TextBox x:Name="InputBox" Margin=",,," />

   <TextBox x:Name="ContentText" Margin=",,,"/>

</Grid>

  注意:在上下文菜单中,最多可以添加6个command,当添加多余6个command时,会出现错误。

  上下文菜单是非常好的方法:特别是为不可选的element提供交互,或者与邻近的element进行交互。

  如需源代码,点击ContextMenu_gimoonet.zip下载

windows 8 开发之开发平台与开发框架的应用 windows8开发之开发平台与开发框架的应用win8App开发主要分成两部分,desktopapp和metroapp。右边蓝色的部分就是desktopapp的部分,也是从win7延续过来没有发生

Windows 8 开发之设置合约的介绍 合约:合约就像一个或多个程序之间的协议。合约定义了应用程序在与其它程序或Windows进行交互时必须遵循的一些约定。我们对一个应用的一些设置,

win8如何打开注册表具体的操作图文 在Windows系统中,注册表是MicrosoftWindows中的一个重要的数据库,用于存储系统和应用程序的设置信息。从微软最初的Windows到最新的Win8系统,注册表在

标签: windows 8 开发者预览版

本文链接地址:https://www.jiuchutong.com/biancheng/363800.html 转载请保留说明!

上一篇:Windows 8 开发之摄像头的使用方法(windows 开发工具)

下一篇:windows 8 开发之开发平台与开发框架的应用(windows开发教程)

  • 应交个人所得税在借方是什么意思
  • 消费税的会计处理分录
  • 结转和分配制造费用会计分录
  • 资产处置损益对损益有影响吗
  • 2020小规模纳税人印花税怎么算
  • 借款利息是否可以转为本金
  • 为职工提供免费午餐
  • 外商投资企业啥意思
  • 贷款逾期的本金怎么计算
  • 职工在异地住院怎么报销
  • 与其他企业联营算投资吗
  • 用现金支付销售产品的运费
  • 关于抄税的详细介绍
  • 可以做投标保证金的有银行汇票银行保函
  • 公司筹建期间的劳务费怎么入账
  • 三证合一后未办理税务登记
  • 固定资产报废相关规定
  • 企业收到的罚款收入属于什么科目
  • 市政府的财政拨款怎么算
  • 扬声器音量调节
  • php利用云片网实现短信验证码功能的示例代码
  • hypertrm.exe系统错误
  • 股权转让的不仅是权利还有义务
  • 留底的进项税额记哪儿?
  • 物业管理费发票图片
  • php实现文件下载功能
  • 项目融资中风险有哪些
  • UserScripts Safari 苹果iOS上特别好用且免费的脚本插件,五分钟学会
  • 百度地图经纬度导航
  • 长期借款科目的期末余额反映尚未偿还的借款本金
  • thinkphp3.1
  • 如何取消axios请求
  • 汇算清缴后缴纳的企业所得税怎么做分录
  • 哪些公司不交五险一金
  • 预缴的企业所得税能抵扣企业所得额嘛
  • js读取json配置文件
  • 织梦开发教程
  • 自然人税收管理系统扣缴客户端官网
  • 公户直接转给私人账户违法么
  • 销售费用主要包括哪些
  • 差旅费津贴要交税吗怎么算
  • sqlserver存储过程语法
  • 党组织工作经费税前扣除
  • 物流公司扣押货物算犯法吗
  • sqlserver数据库中进行查询所使用的语言为
  • 出口不退税进项税是否可以抵扣
  • 阶段性减免企业社保费实施政策对象
  • 员工垫付的费用没有发票,放在工资里可以吗
  • 税前扣除凭证按照用途分为哪些
  • 增值税普通发票有什么用
  • 增值税申报成功了忘了缴款
  • 样品制作公司
  • 资产处置费用是资产类科目吗
  • 货运代理服务开票
  • 企业应交税金包括印花税吗
  • 公司打款账号模板图片
  • 公司收到美元怎么交税啊
  • 固定资产管理台账管理制度
  • 行政单位固定资产标准
  • mysql删除数据库用户
  • xbox预览系统
  • linux中进程在运行时的基本状态
  • win7关闭窗口的方式有哪些
  • win10累积更新 卡住
  • mac的vmware
  • win7系统电脑蓝牙在哪里
  • windows 8 key
  • Linux禁止MySQL开机自启动的小技巧
  • mac sip怎么打开
  • unity脚本模板
  • dos命令大全及用法
  • python用于读取文本文件内容的方法
  • Python文本相似性计算之编辑距离详解
  • javascript学习指南
  • jquery.browser
  • 谷歌的全球化发展战略
  • 土地税源编码怎么填
  • 广东省地方税务局发票查询
  • 费减备案合格后怎么操作?
  • 购买税控盘怎么抵扣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设