wpf 客户端【JDAgent桌面助手】开发详解(四) popup控件的win8.0的bug
目錄區域:
業余開發的wpf 客戶端終于完工了。。曬曬截圖
wpf 客戶端【JDAgent桌面助手】開發詳解-開篇
wpf 客戶端【JDAgent桌面助手】詳解(一)主窗口 圓形菜單。。。
wpf 客戶端【JDAgent桌面助手】開發詳解(二)桌面寵物制作詳解
wpf 客戶端【JDAgent桌面助手】開發詳解(三) 瀑布流效果實現與UI虛擬化優化大數據顯示
在做桌面程序或者web程序時候為了漂亮、操作靈活一般現在的程序都盡量減少彈出窗口式的交互方式,而且也不是很美觀,除非是功能內容畢竟多的情況下回做彈窗。
小的功能點,一般都做成popup 小的彈出層樣子更漂亮,占用屏幕區域小,操作也方便些。
在web開發中有很多好的pop 插件如:http://vadikom.com/demos/poshytip/
在很多年前做winform開發時候,想做這種漂亮的彈窗。比較麻煩。但是在wpf里面 內置了?Popup控件
可以定制:
1.彈出窗口的樣式(可以是方形、圓角矩形、甚至是不規則圖形).popup 控件的content是什么形狀就展示出什么形狀。
2.可以定制彈出層關閉的方式,通過設置Popup.StaysOpen屬性被設置為True,當只有后臺通過代碼將Popup.IsOpen屬性設置為False時候才會隱藏。如果設置Popup.StaysOpen屬性被設置為False,當用戶在其他地方單擊鼠標時,Popup控件就會消失。
3.可以定制彈出窗口的位置,通過設置Popup控件的
PlacementTarget="{Binding ElementName=btnDown}"
Placement="Top"
這兩個屬性,來設置popup控件相對于某個控件彈出的位置,上面的代碼設置的是彈出位置是在 id=btnDown 的按鈕的Top上面彈出。
Placement 的選項總共有12種,足夠大家使用。
Absolute = 0,
Relative = 1,
Bottom = 2,
Center = 3,
Right = 4,
AbsolutePoint = 5,
RelativePoint = 6,
Mouse = 7,
MousePoint = 8,
Left = 9,
Top = 10,
Custom = 11,
如果還是定位不準可以,使用
HorizontalOffset="0"
VerticalOffset="-4" 對位置進行細調。
?總的來說微軟的開發人員設計的這個popup控件使用起來確實很方便,靈活。項目中應用的也很多。如下圖:
?效果會比彈窗選擇的效果好很多。。。
?
但是真的就這么簡單么?
當開發完程序后,我們在多操作系統測試時候發現:win8.0 ?系統中 popup 彈出的位置老是不對。
如下圖:
WinXp /Vista/Win7/Win8.1 下面windows 右鍵菜單彈出的位置(紅色圈為 鼠標指針位置)
Win8.0 下面windows 右鍵菜單彈出的位置(紅色圈為 鼠標指針位置)
?
?
Popup 控件也是這個情況。需要在代碼里面判斷windows的版本。如果是win8.0 popup 的HorizontalOffset、VerticalOffset值需要調整。?
?
轉載于:https://www.cnblogs.com/ExMan/p/4148435.html
總結
以上是生活随笔為你收集整理的wpf 客户端【JDAgent桌面助手】开发详解(四) popup控件的win8.0的bug的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript函数练习1
- 下一篇: 动态寻路插件