手把手玩转win8开发系列课程(18)

简介:

 这节,加入弹出对话框

弹出对话框

这个appBar button能起作用类额 ,他处理的源代码是直接放在Click event里面中。大多数的buttons操作更需要一些额外的用户体验,因此我们使用flyOut控件。

当用户点击了appBar按钮以后,这个弹出窗口就会出现,给予用户一定提示,当用户再度点击这个控件以后,这个东西就会消失。这有点像什么——像winFrom弹出的对话框,但他不是一个窗口,或者一个页面,他只是依附于这个窗口的某个层。这样弹出的窗口的,实现js中操作是使用了flyOut控件,在xaml与C#实现一模一样的效果,需要Popup控件,并且在相应的cs文件中进行了编码使其Popup控件定位。由于,我所运用的win8消费者预览版,我真希望在win8的正式版中能够屏蔽这样的差异,这样我不需要对popup控件进行定位了。

这里我说说项目以外Popup的问题。

Popup是一个神奇的东西,可以很容易的解决一些复杂问题。它将控件的布局扩展到了第三维,可以将其Child中的内容显示在当前界面之上。Popup位于当前Silverlight可见控件区域之上,即使你为某个控件设置了一个比Popuo要大的Canvas.ZIndex值也不会显示在Popup之上,不过Popup之间可以用Canvas.ZIndex区分哪个Popup显示在上面。还有一点,Popup的Child中的事件冒泡已经自己处理了,就好像Popup与下面的所有控件没有关系一样。

 在实际应用中,有一个约定俗成的操作,就是弹出一个Popup后在Popup可见区域外的任意地方点击,Popup会自动关闭,而Popup本身是没有实现这个功能的。具体如何实现,这方案也有很多,下面是比较常用的方法:在要显示的内容下面放一个背景透明且覆盖整个Silverlight可见区域的Canvas,在Canvas的点击事件处理方法中关闭Popup。之所以选择Canvas是因为在布局方式中只有Canvas在背景透明时可以侦测到点击事件


1   <!--Popup中有了Canvas 控件,Rectangle 控件-->
2 <Popup x:Name=“popUp” Opened=“popUp_Opened”>
3   <Canvas x:Name=“overLay” Background=“Transparent” MouseLeftButtonDown=“overLay_MouseLeftButtonDown”>
4    <Rectangle x:Name=“popContent” Width=“200″ Height=“200″ Fill=“AliceBlue”/>
5   </Canvas>
6 </Popup>

哝——对popup有了一个简单介绍。


目录
相关文章
|
10天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1211 5
|
9天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1173 87
|
9天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1768 12
|
19天前
|
人工智能 运维 安全
|
2天前
|
资源调度
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
230 127
|
10天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
362 0

热门文章

最新文章