2010-12-15 23 views
0

我遇到了組合框彈出的問題(不知道它是否是組合框的問題)。首先當我點擊它時,下拉式彈出窗口打開正確 - 向上(其中大約有50個項目,並且組合框位於頁面底部,如果向下,則只有5個項目可見)。但是,如果我選擇任何項目,然後再次打開它 - 它會向下打開並將項目放入滾動條中。那麼,我該如何解決這個問題,並強制彈出打開在所需的方向?如何使silverlight在Silverlight中成長?

回答

0

那麼,我所做的 - 我訂閱了BorderFrame的SizeChanged事件,它是Popup.Child畫布的子項。在那種方法中,我計算組合框下方和上方的空間,然後使用Canvas.SetTop方法將邊界設置爲頂點偏移,並將其設置爲MaxHeight。也許我會稍後發佈一些代碼。

0

你是否在某個時刻設置了「MaxDropDownHeight」?默認情況下,它是無限的,但可能設置爲#組合框中的#號可能會有所幫助。

另外我剛剛在SL4/Firefox中測試了這個,每次彈出組合框(有或沒有選定的項目)。你使用什麼版本的SL?

+0

我正在使用SL4什麼意思#大於#?大於什麼? – Walkor 2010-12-15 21:47:19

+0

對不起,我的意思是嘗試將MaxDropDownHeight設置爲大於列表中項目數的數字。你提到50個項目在你的組合框,所以設置MaxDropDownHeight = 51.我看到一個類似的職位,你所描述的,但它沒有提及日期或SL版本,所以不知道它正在採取什麼版本...和沒有答案,除了它是「錯誤」,並使用差異控制(但沒有提及一個錯誤#或什麼東西來表明這是一個微軟登錄) – 2010-12-16 16:48:33

0

我有這個完全相同的問題(實際上與Silverlight 5,但仍然相同的行爲)。我用MaxDropDownHeight嘗試了各種各樣的東西,但沒有解決問題。

@Walker您在答案中提到的方法聽起來很有希望,但我無法從您的描述中得知您是如何實際執行的。

無論如何,我發現了一個不太可能的解決方案。我發現,如果我使用組合框填充ComboBoxItems而不是自定義對象的集合,則不會發生下拉/選擇/方向問題。我已經發布了一個答案here,進入更多的細節。