Geç cevap, ama orada çok daha iyi ve daha basit çözüm:
<ListBox>
<ListBox.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
</ListBox.Resources>
</ListBox>
Bu sadece bir itemscontrol gibi görünen bir LisBox olmasını sağlar, ancak seçim için desteği vardır.
Düzenleme:nasıl sizin pencereler teması, yalnızca bu liste kutusu ve çocuklar için (biz aslında ListboxItem
hedeflemek istediğiniz) bir başka deyişle
Bu değişiklikler gösterirse "sisteminin renkleri", çalışır. Örneğin, ListboxItem
üzerinde gezinmek genellikle koyu mavi bir arka plan verir, ancak burada onu şeffaf (HighlightBrushKey) olarak ayarlıyoruz.
Düzenleme (2016 30 Haziran):
da yorumlarda @packoman için InactiveSelectionHighlightBrushKey
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent" />
Teşekkür yeniden tanımlamak gerekir, bu artık yeterli değildir son Windows sürümü için görünüyor
güzel ve basit. teşekkürler – Marek
Merhaba, bunun nasıl çalıştığını bana açıklar mısınız?Bana oldukça kafa karıştırdı çünkü yaptığınız her şeyin, bu kod parçacığında herhangi bir değişiklik yapmadan, liste kutusunda daha sonra kullanılacak katı renk fırçalarını tanımlamak olduğunu düşündüm. –
@ClementHoang Bir açıklama ekledim. –