Silverlight ComboBox的Hotkey功能
最近在做專案時,客戶問到操作界面的問題,希望ComboBox能夠有hotkey,這種需求是很難拒絕的,特別是很久以前的WinForm早就有這種功能了。
但不幸的是,Silverlight...沒有。沒有的原因是Silverlight的ComboBox比較強(嗯...好怪的邏輯唷),不過,是真的,因為Silverlight的ListBox和ComboBox裡面的item並不像是以前WinForm or WebForm只能是ListBoxItem, 現在Silverlight中的ComboBox的Item,可以是任何物件,例如簡單一點的String, 複雜一點的Calendar, 甚至可以讓每一個Item是多個物件的集合。
不過,這是ComboBox比較複雜且加上DataBinding的用法,那...假設ComboBox中的Items,根本就是很單純的ComboBoxItem或是String呢? 難道還是不能用HotKey嗎?
然而這時候,可能就需要寫段小程式了,去Hook ComboBox的KeyUp事件,在按下特定的字母時,將ComboBox的SelectIndex做動態的調整,要寫Code,不麻煩,但要能reuse就需要花點腦筋了。
不過令人興奮的是,Silverlight的Behavior技術,可以把這個功能封裝成可重複使用的原件,那,就設計成Behavoir好了...
不過正準備動手時,轉念一想,這麼常用的功能不可能沒有吧,Search了一下,果不其然,國外已經有寫好的套件囉,而且還含有Source Code呢...網址如下...
http://gallery.expression.microsoft.com/RapidAccessKey
Enjoy it...
分享
但不幸的是,Silverlight...沒有。沒有的原因是Silverlight的ComboBox比較強(嗯...好怪的邏輯唷),不過,是真的,因為Silverlight的ListBox和ComboBox裡面的item並不像是以前WinForm or WebForm只能是ListBoxItem, 現在Silverlight中的ComboBox的Item,可以是任何物件,例如簡單一點的String, 複雜一點的Calendar, 甚至可以讓每一個Item是多個物件的集合。
不過,這是ComboBox比較複雜且加上DataBinding的用法,那...假設ComboBox中的Items,根本就是很單純的ComboBoxItem或是String呢? 難道還是不能用HotKey嗎?
然而這時候,可能就需要寫段小程式了,去Hook ComboBox的KeyUp事件,在按下特定的字母時,將ComboBox的SelectIndex做動態的調整,要寫Code,不麻煩,但要能reuse就需要花點腦筋了。
不過令人興奮的是,Silverlight的Behavior技術,可以把這個功能封裝成可重複使用的原件,那,就設計成Behavoir好了...
不過正準備動手時,轉念一想,這麼常用的功能不可能沒有吧,Search了一下,果不其然,國外已經有寫好的套件囉,而且還含有Source Code呢...網址如下...
http://gallery.expression.microsoft.com/RapidAccessKey
Enjoy it...
分享
留言