3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
您需要使用ListBox.ItemContainerStyle。
ListBox.ItemTemplate指定應(yīng)如何顯示項(xiàng)目的內(nèi)容。但是WPF仍將每個(gè)項(xiàng)目包裝在ListBoxItem控件中,默認(rèn)情況下,如果選中它,則將其Background設(shè)置為系統(tǒng)突出顯示顏色。您不能停止WPF創(chuàng)建ListBoxItem控件,但是可以為它們?cè)O(shè)置樣式(在您的情況下,將Background設(shè)置為始終為Transparent或Black或其他顏色),并使用ItemContainerStyle。
juFo的答案顯示了一種可能的實(shí)現(xiàn)方式,即在項(xiàng)目樣式的上下文內(nèi)“劫持”系統(tǒng)背景畫筆資源;另一種可能更慣用的技術(shù)是對(duì)SetterBackground屬性使用。

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
<UserControl.Resources>
<Style x:Key="myLBStyle" TargetType="{x:Type ListBoxItem}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Transparent"/>
</Style.Resources>
</Style>
</UserControl.Resources>
和
<ListBox ItemsSource="{Binding Path=FirstNames}"
ItemContainerStyle="{StaticResource myLBStyle}">
您只需覆蓋listboxitem的樣式(請(qǐng)參閱:TargetType是ListBoxItem)
- 3 回答
- 0 關(guān)注
- 1212 瀏覽
添加回答
舉報(bào)