Re: [問題] 大量按鈕的配置
※ 引述《KanoLoa (卡)》之銘言:
: 各位版友好,我在設計虛擬的觸碰鍵盤時遇到了疑問,故來求教版上的大家開解。
: 若今天已經有一個鍵盤的圖片,要實作出每一個對應的鍵,
: 大家會想用什麼樣的設計方法去實做呢。
: 1.以完整鍵盤圖當作底圖,在每一個鍵上個別拉一個panel或picturebox等元件蓋上,
: 設定元件為透明色,好處是可以直接產生滑鼠點擊屬性事件,大小位置也方便設定。
: 缺點是大量透明的元件會導致繪圖不順,容易發生鍵盤區塊閃爍的狀況。
: 2.將鍵盤圖乖乖拆開分割,每一個鍵都將圖片組合做好一個按鈕元件,個別設定事件。
: 好處是耦合低,繪圖效能可,隨時可自由編排鍵盤排列,缺點是前期費工。
: 3.直接放底圖,然後在監聽滑鼠事件中,重作每個鍵區域的碰撞偵測對應事件。
: 好處是繪圖效能最佳,缺點是要用程式碼來設定每一個區塊位置與大小,稍嫌繁瑣。
: 之前寫winform軟體很要求產出速度,所以常常用 1.的方法硬幹,
: 各種panel和picturebox用透明背景疊來疊去,當元件多的一個數量之後,
: 只要出現大量元件的切換出現,就會開始看到元件各種閃閃,
: 然後都跟客戶說這是一種科技特效,客戶心裡都讚好,做這麼快還加做特效。(...誤)
: 好不容易最近開始脫離大量產出,可以開發一些品質比較要求質感的產品,
: 正考慮是不是轉用WPF,自己查資料似乎比較適合做更精緻的互動效果。
: 以上疑問還懇請大家幫忙提供建議,感謝感謝。 m(_ _)m
考慮到要編輯很多按鍵的位置,對我來說IDE的介面是最棒的,但會遇到 (1)的問題。
用programmatic方式的話,(3)很棒,但是定位會很辛苦。
我剛想也許可以這樣做,用 (1)的方式,在開發階段定位一堆 buttons,
程式載入後,code將這些 buttons從 form.Controls內移除,抄下位置大小等資訊,
用於建立新的 List<Rectangle>,以後有 MouseDown events
時,將 mouse location丟進去比較就知道按到那邊按鈕的位置了。
這樣做因為是回圈在控制,code應該沒幾行,效率應該可以接受才是。
程式碼最多的部分應該會變成 switch(按到那個區) case 執行哪段程式碼的部分。
以上是中午等便當時隨便想的,有錯請指教,謝謝 m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.209.48
→
12/31 13:20, , 1F
12/31 13:20, 1F
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章