2014-02-28 39 views
1

我試圖改變一個列表框的選定項的背景色。它會更改背景顏色,但下次如果我選擇其他項目,則上一個選定項目的背景顏色應設置爲null或默認。如何更改選定項的背景色在ListBox編程?

列表框的名字是lstContacts。

私人無效lstContacts_SelectionChanged(對象發件人,SelectionChangedEventArgs E)

lstContacts.ClearValue(ListBox.BackgroundProperty);//its not working 
ListBoxItem item = lstContacts.ItemContainer.ContainerFromItem(lstContacts.SelectedItem) as ListBoxItem; 
item.Background = new SolidColorBrush(Colors.Red); 

誰能幫助我?

+0

我面臨同樣的問題,你有沒有得到這方面的任何解決方案? –

回答

3

利用項目

var item = ListBox_Main.Items[0] as ListBoxItem ; 
item.Background = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 255, 255, 0)) 
+0

我面臨着重置先前選擇的項目的背景顏色的問題。 –

0

的指數選擇的項目已經有背景色設置,只要你選擇它,以編程方式或通過點擊項目。

你怎麼設置所選項目的背景顏色?你有沒有爲你的ListBox改變了ControlTemplate

+0

仔細閱讀問題。我面臨的問題是重置先前選擇的項目的背景顏色。 –

+0

我明白了,但它的顏色是什麼?默認的一個還是你改變了那個呢? –

1

很簡單。在更改其他項目的背景顏色之前重置整個列表視圖背景顏色。

lstContacts.Background = new SolidColorBrush("your original color here"); 

然後繼續爲

ListBoxItem item = lstContacts.ItemContainer.ContainerFromItem(lstContacts.SelectedItem) as ListBoxItem; 
item.Background = new SolidColorBrush(Colors.Red); 
相關問題