Wpf 文本换行无效

Wpf 文本换行无效,wpf,xaml,Wpf,Xaml,我得到了这个XAML代码,我已经试着让它工作了几个小时了(我对WPF非常陌生)。我基本上希望TextBlock中的文本在没有足够空间的情况下换行 <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="60" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Image So

我得到了这个XAML代码,我已经试着让它工作了几个小时了(我对WPF非常陌生)。我基本上希望
TextBlock
中的文本在没有足够空间的情况下换行

<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="60" />
    <ColumnDefinition Width="*" />
  </Grid.ColumnDefinitions>
  <Image Source="{Binding Path=imageurl}" Width="60" Height="60" Grid.Column="0" />
  <TextBlock TextWrapping="Wrap" Text="{Binding Path=content}" Grid.Column="1" />
</Grid>


谢谢

好吧,我基本上将网格
列定义
宽度设置为固定宽度,现在可以工作了。

这很可能是由于父级赋予网格无限的布局宽度,导致“*”赋予其列无限的布局宽度。这种行为的罪魁祸首可能是包含网格的外部StackPanel(水平定向)。其他候选对象包括Viewbox、DockPanel或use in a ListBox(ListBoxItem容器对象的默认样式使其内容具有无限的布局宽度)

您提到它在DataTemplate中,这可能会建议最后一个案例。如果是这样,您可以通过设置生成的容器对象的样式以使其具有HorizontalContentAlignment=“Stretch”来获得所需的行为



对我来说效果很好,当窗口大小调整到小于所需大小以适合文本时,TextBlock会自动换行。网格的父级是如何构造的?尝试用检查TextBlock大小,看看它是否扩展到窗口尺寸之外…@Viv第二列的宽度似乎有点错误。如果我将其设置为固定宽度,如“200”,代码工作正常。我好像错过了什么。也许这与代码作为数据模板有关?那么你可以发布完整的xaml了吗。无法用您发布的内容重现您的问题,因此不太确定是什么导致了问题
        <ListBox Margin="3,0,3,3" HorizontalContentAlignment="Stretch"
                 ItemsSource="{Binding Items}">
            <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                </Style>
            </ListBox.ItemContainerStyle>
        </ListBox>