簡體   English   中英

WP7中的獲取動態(運行時)按鈕以與對象關聯

[英]Getting Dynamic (Runtime) Buttons in WP7 to Associate with Objects

我正在為XNA游戲創建界面,似乎無法弄清楚。 我是編程新手,覺得自己必須丟失一些明顯的東西。

我正在創建一個關卡網格,就像您在《憤怒的小鳥》中看到的一樣。
級別的數量是可變的,所以我不想對它們進行靜態編程。

我用於關卡圖標的所有按鈕都是在運行時根據關卡對象列表動態創建的。 創建按鈕時,我將所有單擊事件設置為指向一種方法,該方法應確定它們單擊了哪個按鈕並加載該特定級別。

我的問題是,我似乎似乎找不到一種可靠的方法來實際告訴他們單擊了哪個按鈕,並將其與列表中的一個關卡對象相關聯。 我覺得我一定錯過了一些非常明顯的東西。

到目前為止我嘗試過的事情:

動態生成按鈕時,我將它們作為子項添加到網格中。 因此,我嘗試將發送者的索引號用作級別列表中的索引號(因為它們都應具有相同數量的元素)。 例如:App.CurrentLevel = PuzzleLevelsGrid.Children.IndexOf(sender as Button);

第一次導航到級別選擇屏幕時,此方法效果很好,但是每當返回到它時,由於某種原因,網格的子代都會重置為0,因此會崩潰。 我已經設置了斷點,並且無法解釋將其設置為0的方式。我將子項加載到onNavigatedTo()中,並且在該操作結束與按下按鈕加載一個被擦除的級別之間的某個時間之間。

我嘗試的另一件事是在實際的關卡對象中設置一個按鈕對象,然后在動態創建關卡按鈕時,實際上在適當的關卡中對button屬性進行了更改。
然后,當我需要找出哪個按鈕是發送者時,我只需遍歷所有級別並將發送者與button屬性進行匹配。 這種方法實際上效果很好……直到我開始嘗試使用后台工作線程加載關卡。 輔助線程無法處理Button,因為它是UI線程,並崩潰。

就像我說的,我是一名新程序員,所以我歡迎任何反饋。 提前致謝。

與幾乎每個UI控件一樣,該按鈕具有“ Tag”屬性。 此屬性是為您而設計的,並且僅為您而設計,以便您可以輸入想要識別控件的任何值。

例如,您可以將關卡對象放在按鈕的Tag屬性中,然后只需在click事件中讀回該值即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM