WPF TreeView Resaltar fila al pasar el mouse
Frecuentes
Visto 7,056 veces
1
Actualmente, al pasar el cursor sobre un encabezado en TreeView, se resaltará el encabezado. Me gustaría pasar el cursor sobre cualquier parte de la fila en TreeView para resaltar la fila completa (al igual que lo hace el explorador de Windows). ¿Alguien podría dar un ejemplo de cómo hacer eso?
1 Respuestas
4
Necesitas cambiar el ControlTemplate
para TreeViewItem
para ser en realidad todo el ancho del control.
Hay una discusión sobre este problema, junto con una solución, aquí:
http://leecampbell.blogspot.com/2009/01/horizontal-stretch-on-treeviewitems.html
Aquí hay otra respuesta larga, sin la discusión:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b04f73e2-0b10-4d97-a6da-64df2e30c21d/
Así que quise decir que esos ejemplos fueran guías. Si toma exactamente el mismo código que está en el segundo enlace anterior (de los foros de MSDN) y simplemente agrega esto:
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="Bd"
Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
</Trigger>
de las personas acusadas injustamente llamadas ControlTemplate
Verás que obtienes el color de resaltado al pasar el mouse. Obviamente, deberá ajustar el color y otras cosas, pero eso es lo que deberá hacer: modificar el ControlTemplate
de los TreeViewItem
para que ocupe todo el ancho y añadir un Trigger
por IsMouseOver
.
contestado el 03 de mayo de 12 a las 20:05
Ese ejemplo solo hace que el encabezado sea más grande y solo resalta el encabezado en la selección. Quiero que se resalte toda la fila (incluido el botón de expansión y el espacio en blanco anterior) y quiero que se resalte al pasar el mouse, no al seleccionar. - krisviaje
Actualicé mi respuesta para proporcionar más información. No es exactamente lo que estás pidiendo (tendrás que modificarlo), pero debería ponerte en marcha. - Tim
El enlace de lee campbell y toda la discusión es solo para estirar el resaltado completamente hacia la derecha, no se estira hacia la izquierda. - usuario317033
posible duplicado de Resalte toda la línea TreeViewItem en WPF - Justin