Re: [問題] 大量按鈕的配置

看板C_Sharp (C#)作者 ( )時間11年前 (2013/12/31 13:15), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
沒錯,其實3方法通常會搭配元件定位,最後抄位置大小
12/31 13:20, 1F
文章代碼(AID): #1ImbBm8- (C_Sharp)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1ImbBm8- (C_Sharp)