位置: 编程技术 - 正文

Windows 8 开发之设置合约的介绍(win系统开发)

编辑:rootadmin

推荐整理分享Windows 8 开发之设置合约的介绍(win系统开发),希望有所帮助,仅作参考,欢迎阅读内容。

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

  合约:合约就像一个或多个程序之间的协议。合约定义了应用程序在与其它程序或Windows 进行交互时必须遵循的一些约定。我们对一个应用的一些设置,常用的可以放到AppBar上面,如果不是很常用的,比如应用程序的主题颜色,可以放到设置合约,也就是通过超级菜单调出来的设置面板上。下面就介绍如何把我们的设置选项添加的设置面板中。

1.引入命名空间:Windows.UI.ApplicationSettings;2.注册设置事件

Windows 8 开发之设置合约的介绍(win系统开发)

  在程序启动的时候,App.xaml.cs文件中有一个名为OnLaunched的方法会被调用。在OnLaunched的开头,我创建了一个event handler,当用户打开SettingsPane时,会被调用。你自定义的设置画面直到用户打开Settings Charm时,才会被加载。当你“暂停”你的程序或者游戏,如果设置面板被打开了,那么这个event也会被调用。复制代码代码如下:protected override void OnLaunched(LaunchActivatedEventArgs args) { SettingsPane.GetForCurrentView().CommandsRequested += App_CommandsRequested; //注册设置事件 Frame rootFrame = Window.Current.Content as Frame;</p><p> // 不要在窗口已包含内容时重复应用程序初始化, // 只需确保窗口处于活动状态 if (rootFrame == null) { // 创建要充当导航上下文的框架,并导航到第一页 rootFrame = new Frame();</p><p> if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) { //TODO: 从之前挂起的应用程序加载状态 }</p><p> // 将框架放在当前窗口中 Window.Current.Content = rootFrame; }</p><p> if (rootFrame.Content == null) { // 当未还原导航堆栈时,导航到第一页, // 并通过将所需信息作为导航参数传入来配置 // 参数 if (!rootFrame.Navigate(typeof(MainPage), args.Arguments)) { throw new Exception("Failed to create initial page"); } } // 确保当前窗口处于活动状态 Window.Current.Activate(); }复制代码代码如下:void App_CommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args) { SettingsCommand cmd = new SettingsCommand("关于", "关于应用", (handle) => { Popup popup = CreatePopup.Create(new AboutPage(),); popup.IsOpen = true; }); SettingsCommand cmd1 = new SettingsCommand("主题", "主题颜色", (handle) => { Popup popup = CreatePopup.Create(new ThemColor(), ); popup.IsOpen = true; }); args.Request.ApplicationCommands.Add(cmd); args.Request.ApplicationCommands.Add(cmd1); }  如上代码所示,我创建了一个SettingsCommand对象,并提供了三个值。除非你需要在程序运行时修改SettingsPane,否则第一个参数值并不太重要。它就是一个简单ID,随后可以通过这个ID可以引用到SettingsCommand。标签“主题颜色”可以是任意的字符串,不过我建议不要超过个字符,否则会被截断。最后一个参数值是这个command的handler。当用户轻触lable 时,会执行该handler。在这里,我用lambada 表达式来简化该处理。表达式里面,我创建了一个Popup控件,并将其IsOpen 属性设置为true。改变这个属性,可以使Popup显示在屏幕上。

3. 创建Popup控件  首先是一个自定义的UserControl,之后我会介绍到该UserControl,现在只需要明白AboutPage.xaml是一个UserControl即可,AboutPage.xaml是用于Popup控件中的。复制代码代码如下:public class CreatePopup { public static Popup Create(UserControl element, double width) { Popup p = new Popup(); p.Child = element; p.IsLightDismissEnabled = true; p.ChildTransitions = new TransitionCollection(); p.ChildTransitions.Add(new PaneThemeTransition() //声明边缘 UI(如应用程序栏)的边缘转换位置。 { Edge = (SettingsPane.Edge == SettingsEdgeLocation.Right) ? EdgeTransitionLocation.Right : EdgeTransitionLocation.Left });//检查SettingsPane的edge,有些国家的超级菜单在左边。</p><p> element.Width = width; element.Height = Window.Current.Bounds.Height; p.SetValue(Canvas.LeftProperty, SettingsPane.Edge == SettingsEdgeLocation.Right ? (Window.Current.Bounds.Width - width) : 0);//设置距离左边的边距 p.SetValue(Canvas.TopProperty, 0); return p; } }   上面定义了UserControl的高度和宽度,并将element赋值给Popup控件p。(这里建议的宽度是或者,高度应该是用户屏幕的完整高度,参考:设计指南)。最后,设置了popup的left 和top 属性,这样popup将会出现在适当的位置,然后将p返回给SettingsCommand。   注解:Windows 8可以根据机器的本地化设置而有不同的变化。如果有的国家的语言是从右往左读的,那么Charms Bar的实际位置是在屏幕的左边,而不是右边。这就是为什么我在给popup的LeftProperty赋值时,检查SettingsPane的“edge”。

4. 创建UserControl  添加一个新的UserControl项到工程中。为了跟之前的代码想匹配,我将其命名为AboutPage.xaml。这个文件中代码的内容完全取决于你。没有任何的官方文档约束。在UserControl中,可以通过在MainPage中定义一个共有字段public static MainPage Current来访问MainPage页面中控件,实现对页面里面控件的属性进行修改。

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

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

win8开始菜单在哪里利用优化大师找回开始菜单(图文) Win8系统离正式发布也仅有个把月了,相信大家都很期待吧,现在大家很多朋友在用的Win8系统要门是测试版要么是企业测试版,虽然不如正式版,但与正

win8退出时清除动态磁贴过期通知(利用组策略实现) 微软Win8系统开始屏幕上的动态磁贴可以显示很多信息,比如新闻、微博、天气等等,但有时候磁贴上显示的并不是最新的动态信息,一些已经阅读过的

标签: win系统开发

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

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

下一篇:win8如何打开注册表具体的操作图文(windows下打开注册表的命令是什么)

  • 企业代扣代缴个人所得税系统
  • 房产税的征收范围包括农村吗
  • 专项工程支出计入什么科目
  • 税控盘抵扣可以跨年吗
  • 税务异常有哪些类型
  • 城建税减免性质代码 0申报
  • 工程项目估算收入要缴税吗
  • 融资租赁可以确认为资产吗
  • 商超陈列费
  • 影响无形资产项目金额的有
  • 农产品核定扣除范围
  • 土地转让契税税率2020税率表
  • 报销油费如何写摘要及会计分录怎么做?
  • 公司实行注册资本认缴制
  • 不再认证时段内
  • 从国外进口的免税商品
  • 进项税发票已经认证但对方又作废
  • 企业交补充医疗保险
  • 一般纳税人出租不动产增值税税率
  • 没有三方协议怎么缴纳社保
  • 增值税附加税可以抵扣吗?
  • 2017年8月1日到现在多少天
  • 如何区分劳务派遣和劳动合同
  • 促销活动赠品应如何账务处理
  • 票据转让后本公司还有责任吗
  • 生活服务业包括哪些行业照片
  • 一年期电子银行承兑汇票
  • 个税按工资薪金未按时申报的处罚规定
  • 搬运费没有发票能入成本吗?
  • 税务发票原件
  • 企业房产税怎么申报缴纳流程
  • 事业单位固定资产盘盈账务处理
  • 两个公司发工资违法吗
  • php关联数组转索引数组
  • Yii2隐藏frontend/web和backend/web的方法
  • windows 11预览版
  • PHP:mb_output_handler()的用法_mbstring函数
  • 房地产企业按揭款到账后增值税
  • scrfs.exe - scrfs是什么进程 有什么用
  • PHP:Memcached::getOption()的用法_Memcached类
  • 财务费用利息收入怎么结转
  • 外商独资企业在中国上市简称什么
  • 出现又离开
  • 公立医院增值税抵扣
  • 研发支出属于哪个表
  • 税收优惠会计分录 附加税
  • 公司财务认证负责人实名认证需要承担责任吗
  • 固定资产报废会计科目处理
  • 不动产固定资产清理
  • 如何用织梦在本地搭建网站
  • 质量赔偿可以开什么费用发票
  • 合并报表调整分录理解
  • 对公允价值套期的认识
  • 上一年度主营业务成本多计提了
  • 固定资产减值准备一经计提不得转回
  • 其他应收款余额在贷方什么意思
  • 小规模纳税人发票可以抵扣吗
  • 固定资产折旧的影响因素
  • 小规模纳税人可以抵税吗
  • 行权期行权条件成就什么意思
  • win7系统安全在哪
  • win10无法删除文件夹没有权限
  • linux如何用
  • 没有系统盘怎么修复系统
  • 电脑windows xp
  • win7 ie
  • win10系统故障恢复
  • 怎么做小地图图片呢
  • unity射击游戏完整案例
  • jquery常用的事件绑定函数有哪些
  • 基于JAVASCRIPT实现的可视化工具是
  • android数据存储与访问的方式有
  • 上海个人到税务局怎么开票
  • 如何网上申领税票发票
  • 天津2020年契税征收标准
  • 交了增值税还用交税吗
  • 税控盘过了时间没清卡要罚多少钱
  • 企业年检里的纳税是什么
  • 交强险是什么样的照片
  • dhl清关需要提供资料嘛
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设