一直以來,我們設計windows應用程式,都是将控件的尺寸定好,無論窗體大小怎麼變,都不會改變,這樣的設計對于一般的應用程式來說是沒有問題的,但是對于一些比較特殊的應用,比如有背景圖檔的,需要鋪面整個螢幕,由于存在多種不同的分辨率,是以會出現布局混亂的情況。今天我們來看看WPF中如何讓我們的控件也随着分辨率放大縮小。下面來寫一個例子看看效果吧~
一、普通布局中的問題
這裡我們寫一個簡單的頁面,建立WPF項目,在MainWindow裡面添加按鈕,如下圖:
這個頁面很簡單,隻有三個按鈕,我們想的是左上角和右下角有兩個按鈕,中間有一個大的按鈕,現在顯示是沒有問題的,那麼我們通過改變按鈕大小來模拟分辨率變化,來看看會變成什麼樣子,如圖:
按鈕的位置都變了,當然這裡你會說,我們可以通過修改布局來讓按鈕仍然顯示在指定的位置,但是當使用者螢幕分辨率過小時呢?會導緻某些控件顯示不出來。如下圖:
二、問題的解決辦法
針對上面的問題,我們來看看如何布局,來解決上面的問題,下面我們修改布局代碼如下,使用canvas布局:
主要部分是我們在Canvas最外層添加了ViewBox,由于ViewBox的stretch屬性預設是Uniform,是以我們要設定為Fill,這樣能保正是填充滿窗體,canvas的寬度和高度必須設定,否則顯示不出來。顯示效果如下:
縮小時的顯示效果
放大時的顯示效果,雖然空間有些變形,但是布局沒有亂。一般情況下顯示器的比例都是有标準的,變形不會這麼嚴重的。
好了,這篇博文内容很少很簡單,但相信對于一些朋友是有幫助的!
QQ交流群:243633526
部落格位址:http://www.cnblogs.com/yunfeifei/
聲明:本部落格原創文字隻代表本人工作中在某一時間内總結的觀點或結論,與本人所在機關沒有直接利益關系。非商業,未授權,貼子請以現狀保留,轉載時必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接。
如果大家感覺我的博文對大家有幫助,請推薦支援一把,給我寫作的動力。