respuesta tardía, pero no hay una solución mucho mejor y más simple:
<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>
Esto le permite tener un LisBox que se parece a un ItemsControl, pero tiene el apoyo para la selección.
Editar: Cómo funciona
"colores del sistema" Esto altera, en otras palabras, su tema de ventanas, sólo para este cuadro de lista y sus hijos (que en realidad desea orientar la ListboxItem
).
Por ejemplo, situar un ListboxItem
generalmente le da un fondo azul profundo, pero aquí lo configuramos en transparente (HighlightBrushKey).
Edición (30 de junio de 2016):
Parece para la última versión de Windows esto ya no es suficiente, también es necesario redefinir InactiveSelectionHighlightBrushKey
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent" />
Gracias a @packoman en los comentarios
agradable y simple. gracias – Marek
Hola, ¿pueden explicarme cómo funciona esto exactamente?Me tiene bastante confundido porque pensé que todo lo que hacían era definir brushs de colores sólidos para usarlos más adelante en el cuadro de lista, sin hacer ningún cambio real con ese fragmento de código. –
@ClementHoang Agregué una explicación. –