2011-01-04 8 views
6

Permítanme mostrarles parte de mi código XAML:Cambiar el tamaño de mi frontera cuando un verticalScrollBar aparece

<ListBox Grid.Row="1" ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
     ScrollViewer.IsDeferredScrollingEnabled="True" 
     HorizontalAlignment="Stretch" ItemsSource="{Binding}" Margin="1,1,0,0" 
     Name="listBox_Faits" Width="290" VerticalAlignment="Stretch" 
     SelectionChanged="listBox_Faits_SelectionChanged"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Border BorderBrush="SlateGray" BorderThickness="0.5" Margin="1,2,1,1" 
        Width="{Binding ElementName=listBox_Faits, Path=Width}"> 

Cuando se crean demasiado fronteras (que está vinculado con un ObservableCollection), aparece una barra de desplazamiento vertical, y mi el borde no cambia de tamaño por sí mismo. (Me gustaría ver el borde completo, no quiero que se corte al final)

Si alguien tiene una idea, ¡gracias! ¡No dude en preguntar si necesita más información!

Rgds,

Flo

Respuesta

3

Puede hacer estiramiento ListBoxItem mediante la adición de esto, y luego se puede quitar el ancho de la unión para la Frontera

<ListBox ...> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
     </Style> 
    </ListBox.ItemContainerStyle> 
    <!-- ... --> 
+0

¡Guau, tienes razón, funciona! – Flo

+0

¡¡Incluso resolvió un problema anterior que tuve !!! ¡Muchas gracias! Saludos, Flo – Flo

+0

@Flo: No hay problema :) ¡Dos en uno entonces, genial! –

0

El problema es que se está ajustando el ancho del borde. Esto significa que será un tamaño fijo, incluso si los visibles son más pequeños que el tamaño del elemento de la lista. Si no configura el Ancho del borde, cambiará su tamaño para que quepa dentro de la barra de desplazamiento.

+0

Hum, cuando no me puse cualquier tamaño, cada frontera tiene un tamaño diferente: se necesita el tamaño de la oración más larga en él. No sé cómo hacer que el borde encaje perfectamente en el cuadro de lista, sin pensar en el tamaño de su contenido. Pensé que era HorizontalAlignement = "Estirar", pero no funciona. – Flo

Cuestiones relacionadas