ListView de WPF => ¿cuándo es visible la barra de desplazamiento vertical?
Necesito saber cómo puedo saber cuándo un ListView está haciendo scroll vertical para ajustar la alineación de otros componentes.
Algo así:
<ListView x:Name="lvList"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ItemsSource="{Binding ..., Mode=OneWay}"
SelectedItem="{Binding ...}">
<TextBlock Text="..."
HorizontalAlignment="{Binding ComputedVerticalScrollBarVisibility, ElementName=lvList.ScrollViewer ,Converter={StaticResource AlightByScroll}}"/>
He intentado colocar el ListView dentro de un ScrollViewer y funciona, pero luego tengo otro problema con el desplazamiento táctil del ScrollViewer. Por lo tanto, necesito resolver mi problema sabiendo cuándo la barra de desplazamiento vertical está visible en mi ListView.
davy.ai
Una forma de lograr esto es utilizar un ValueConverter con la vinculación de HorizontalAlignment del TextBlock. El ValueConverter puede tomar la propiedad de VerticalScrollBarVisibility calculada del ScrollViewer y devolver un valor adecuado para la propiedad HorizontalAlignment del TextBlock.
Aquí tienes un ejemplo de cómo hacer esto:
Este convertidor verifica si ScrollBarVisibility es Visible y devuelve un valor de HorizontalAlignment.Right. Si ScrollBarVisibility no es Visible, devuelve un valor de HorizontalAlignment.Stretch.
Esto ajustará la alineación del TextBlock en función del estado de desplazamiento vertical del ListView.
Nota: Esta solución asume que estás utilizando un ListView que tiene su propio ScrollViewer. Si estás utilizando un ListView que está contenido dentro de un ScrollViewer, es posible que necesites modificar esta solución para obtener la propiedad relevante de ScrollBarVisibility.