零元學Expression Blend 4 - Chapter 33 簡單輕鬆的學會如何使用Visual States(下)

上篇提到了Visual State Manager中文翻譯為視覺狀態管理器是Blend的強大功能之一

本篇要更深入介紹如何使用

 

上篇提到了Visual State Manager中文翻譯為視覺狀態管理器是Blend的強大功能之一

本篇要更深入介紹如何使用

 

本篇範例最後成果:

 

 

01

接續著上篇的介紹,所以接下來開始相關效果的設定

左鍵單擊MouseOver,工作區左上方會亮起小紅點並顯示”state recording is on

在這個狀態下,請把愛心的顏色更改為#FFFFCACA

image

 

再來是Pressed,一樣單擊Pressed使之為state recording is on狀態

(應該可以發現,從MouseOver轉換為Pressed時愛心從粉紅色會更改回白色,這就是狀態間的變換)

選取最大的圓,並更改些微的大小

image

 

你可以再次按下F5,試試看是否Button已經有操作時視覺上的反饋

 

注意到了嗎? 我們不用編寫任何程式碼XAML就能改變我們按鈕的外觀

 

02

而接下來介紹如何使用Visual State功能處理視覺狀態間的變換

為了更明顯看出兩個狀態變換間的差異,我讓Pressed時的圓形變得比剛剛更大一點

image

 

Visual State預設情形下,由一個視覺狀態移動到另一個視覺狀態時,Blend會自動的構建和執行過渡時間的Storyboard(即為Blend自動幫我們生成了2個狀態間平滑過渡的動畫效果)

再一次實現了在Blend裡,你不需編寫任何程式碼就可以讓這一切發生

 

但若還是想要自訂過渡時間的Storyboard,你還是能加自己所設計的Storyboard

image

 

Blend的自動過渡功能中你可以利用的一個特性是,自訂視覺狀態過渡發生所需要花費的時間

單擊Add Transition(狀態右邊帶有”+號”的箭頭)->MouseOver->Pressed

image

 

列表裡有:

* -> MouseOver

MouseOver -> Normal

MouseOver -> Pressed

MouseOver -> Disabled

MouseOver –> *

 

星號*"表任何狀態

所以* -> MouseOver表示任何狀態到MouseOver

而MouseOver -> *,則表示MouseOver到任何狀態

image

 

設定一個TransitionEffect,Blend已經內建了許多效果,你可以選一個喜歡的效果來測試

範例這裡選的是Ripple

image

 

接著的是EasingFunction,但這個範例我們不使用這項功能

(詳細的EasingFunction介紹請看這裡)

image

 

接著設定當MouseOver狀態移到Pressed狀態時,過渡效果所執行的時間

Transiton duration ->由0s改為1s,設定值接受小數點

這裡表示由MouseOver狀態移到Pressed狀態須經過1秒鐘的執行時間

image

 

完成後按下F5看看成果

image

 

你應該會發現很明顯的差異

 

其他狀態的過渡效果可以依不同的需求作調整

相信你會慢慢發現Blend這項強大功能的神奇力量

 

附上本範例的專案

 

 

 

本篇的教學就到此。

 

 

 

(若有任何錯誤的地方,請各位前輩或同好能不吝指教,小女子都會虛心接受;若是你喜歡我的教學,請給我點鼓勵,謝謝。)

一步一步邁向HIE之路

 

喜歡我文章請推我一下或給我個回應,你的鼓勵會給我無限的動力喔!

若是您有其他問題或是特別需要,請在文章回應處留言,我會盡快回覆您