wpf layout grid textwrapping

WPF Grid Column MaxWidth no aplicado



layout textwrapping (2)

Intenté replicar tu problema pegando todo entre tus elementos de Grid en Kaxaml, pero todo se ajusta como esperarías. (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.

Este problema se debe a que no pude obtener mi TextBlock para envolver. 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.

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 que TextBlock llene el ancho disponible, que no esté 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>


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