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