2009-02-11 31 views
6

Este problema se debe a que no se puede ajustar mi TextBlock. Básicamente, como último intento, estoy configurando MaxWidth en las columnas de la cuadrícula de mi contenedor. Me sorprendió encontrar que la etiqueta y el cuadro de texto de mi hijo todavía hacen lo que quieren (malos hijos, MALO) y no están limitados por MaxWidth = "200" de mi columna de cuadrícula.Columna de cuadrícula de WPF MaxWidth no aplicado

Lo que realmente estoy tratando de hacer es dejar que mi TextBlock llene el ancho disponible y envolverlo si es necesario. Hasta ahora, después de probar muchas variaciones de HorizontalAlignment = "Stretch" en todos los padres conocidos en el universo, nada funciona, excepto establecer un MaxWidth = "400" explícito o cualquier número en el bloque de texto. Esto no es bueno porque necesito el TextBlock para completar el ancho disponible, no estar limitado por un número fijo. ¡Gracias!

<ItemsControl> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel /> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition MaxWidth="200" SharedSizeGroup="A" /> 
       <ColumnDefinition MaxWidth="200" SharedSizeGroup="B" /> 
      </Grid.ColumnDefinitions> 

      <Label VerticalAlignment="Top" Margin="0 5 0 0" Grid.Column="0" Style="{StaticResource LabelStyle}" Width="Auto" Content="{Binding Value.Summary}" /> 
      <TextBlock Grid.Column="1" Margin="5,8,5,8" FontWeight="Normal" 
         Background="AliceBlue" 
         Foreground="Black" Text="{Binding Value.Description}" 
         HorizontalAlignment="Stretch" 
         TextWrapping="Wrap" Height="Auto" /> 
      </Grid> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

Respuesta

2

He tratado de replicar su problema pegando todo lo que entre sus elementos de la red de a Kaxaml pero todo lo envuelve como se puede esperar que lo haga. (Inserté cadenas regulares donde hacían bindings y quité el estilo Label).

Podría ser que el problema esté más arriba en el árbol.

Sugiero pegar trozos en Kaxaml o similares para probar y ver qué padre rompe tu UI.

1

Proporcioné una respuesta a esta pregunta, solo que estaba usando un ListView en lugar de un ItemsControl, pero el problema es probablemente el mismo. Probablemente exista un ScrollViewer alrededor de su ItemPresenter y necesite editar una copia de la plantilla ItemsControl.

WPF ListView TextBlock TextWrapping

Cuestiones relacionadas