文字环绕不起作用

时间:2013-04-01 21:46:08

标签: wpf xaml

我得到了这个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>

谢谢!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这很可能是由父级给出Grid无限布局宽度引起的,这会导致“*”赋予其列无限的布局宽度。这种行为的罪魁祸首是包含Grid的外部StackPanel(水平定向)。其他候选包括Viewbox,DockPanel或在ListBox中使用(ListBoxItem容器对象的默认样式为其内容提供无限的布局宽度。)

你提到它存在于DataTemplate中,它可以暗示最后一种情况。如果是这样,您可以通过设置生成的容器对象的样式来获得所需的行为,使其具有Horizo​​ntalContentAlignment =“Stretch”。

        <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>