手把手玩转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有了一個簡單介紹。
轉載于:https://www.cnblogs.com/manuosex/archive/2012/12/05/2802970.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的手把手玩转win8开发系列课程(18)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12.04 scrum report
- 下一篇: poj3687Labeling Ball