blend設計基礎教程(一)


應群里朋友要求,發個基礎教程。由於他是程序員,對blend設計完全沒概念,所以發個很基礎很基礎的教程。

他想實現的效果如下圖

WPF的控件是無外形的控件,可以是任何樣子,這個效果我們用個combox解決。

1.新建一個項目,然后再頁面上添加一個combobox.然后添加兩個comboxitem;

2.編輯combobox的模板。

看下combobox里面的模板是什么樣子。

MainGrid是為布局控件Grid;PART_Popup為點擊按鈕后下方彈出的pop窗口,ToggleButton為點擊的彈出下拉的按鈕,ContentPresenter為承載你選擇值的一個控件。

3.看下我們最終實現的樣式,彈出的框距離按鈕有個邊距,你可能想通過設置PART_Popup的margin來控制位置,但是你這樣做了是沒有效果的,應為PART_Popup的位置是根據ToggleButton改變的。所以我們改變策略,修改pop里面border的邊距。同樣要修改彈出框的背景色,邊框顏色,粗細都是在這里修改dropDownBorder的屬性。

4.combox選中一項后,上面會顯示值出來,我們解決的辦法就是直接刪掉ContentPresenter,不用擔心,不會有任何報錯!

4.彈出下拉的按鈕與我們想實現的效果有所不同,所以我們要編輯ToggleButton的模板。

chrome為微軟默認的主題布局容器,我們可以直接刪掉。我們的combox就不會出現默認的灰色漸變底色了。

5.現在我們可以對按鈕的樣式進行任意操作,可以放背景圖片,改變三角形形狀等等

6.回到最初界面改下combobox的寬度就可以實現上面的效果了。

7.修改pop彈出框里面項的樣式。選擇編輯itemcontainstyle.

ItemTemplate為數據模板,當你的彈出中是圖片加文字的時候,你就需要用數據模板去綁定數據。

ItemContainerStyle為樣式模板。是你彈出中每項的樣式。

ItemsPanel為布局模板,是彈出項中的布局容器。為什么我們看到彈出項中的項是豎直排列的原因就是combobox的ItemsPanel模板默認為StackPanel.

8.我們想設置鼠標移上去的時候背景色為紅色,很多人可能是去更改Bd的背景色。當你使用觸發器來實現這個功能的時候,可以這樣去實現,但是當你使用狀態模板時我們就要使用另一種實現方式。

9.將Bd放入Grid中,同時在Grid中添加一個背景色為紅色的矩形。

10.將矩形的透明度設為0.(當你希望有動畫效果的時候設置Opacity,反之則使用Vislbility)

11。選中狀態面板,然后再選中mouseover狀態,把你剛才設置的Opacity改為100

這樣我們的combobox就實現了。

 

東西很基礎,多動手就很容易理解,否則你看了再多也不會記住。

 

最后我們的目標是沒有代碼!!!!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM