WPF网格列MaxWidth未强制执行

dev*_*vth 6 wpf grid layout word-wrap

这个问题源于无法让我的TextBlock包装.基本上作为最后的尝试我在容器网格的列上设置MaxWidth.我很惊讶地发现我的孩子标签和文本框仍然可以做任何他们想做的事(坏孩子,不好)并且不受我的网格列的MaxWidth ="200"的限制.

我真正想做的是让我的TextBlock填充可用宽度并在必要时包装.到目前为止,在Universe中每个已知父级上尝试使用Horizo​​ntalAlignment ="Stretch"的许多变体后,除了在TextBlock上设置显式的MaxWidth ="400"或任何数字之外,没有任何作用.这不好,因为我需要TextBlock来填充可用的宽度,而不受某些固定数量的限制.谢谢!

<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>
Run Code Online (Sandbox Code Playgroud)

Nid*_*ocu 2

我尝试通过将 Grid 元素之间的所有内容粘贴到 Kaxaml 中来复制您的问题,但所有内容都会按照您的预期进行换行。(我在您进行绑定的位置插入了常规字符串并删除了标签样式)。

问题可能出在树的更高层。

我建议将块粘贴到 Kaxaml 或类似的文件中进行测试,看看哪个父级会破坏您的 UI。