代码之家  ›  专栏  ›  技术社区  ›  Eric Haskins

强制TextBlock在WPF列表框中换行

  •  91
  • Eric Haskins  · 技术社区  · 17 年前

    我在谷歌上搜索并找到了类似问题的解决方案,但没有一个有效。

    <ListBox HorizontalContentAlignment="Stretch"  ItemsSource="{Binding Path=FriendsTimeline}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <Border BorderBrush="DarkBlue" BorderThickness="3" CornerRadius="2" Margin="3" >
                        <Image Height="32" Width="32"  Source="{Binding Path=User.ProfileImageUrl}"/>
                    </Border>
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="{Binding Path=User.UserName}"/>
                        <TextBlock Text="{Binding Path=Text}" TextWrapping="WrapWithOverflow"/> <!-- This is the textblock I'm having issues with. -->
                    </StackPanel>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
    
    3 回复  |  直到 10 年前
        1
  •  134
  •   Sergey Vyacheslavovich Brunov prodigitalson    10 年前

    会议内容 TextBlock 可以使用属性包装 TextWrapping . StackPanel 使用 DockPanel / Grid . ScrollViewer.HorizontalScrollBarVisibility 财产 Disabled ListBox

    更新 Hidden 残废 根据马特的评论。谢谢你,马特。

        2
  •  9
  •   Martin Moser    17 年前

        3
  •  3
  •   eldor    9 年前

    如果要防止TextBlock增长,并且希望它正好适合列表框的大小,则应明确设置其宽度。

    为了动态地更改它,这意味着不是一个固定值,但您需要将它绑定到可视化树中适当的父元素。你可以有这样的东西:

    <ListBox ItemsSource="{Binding MyItems}" Name="MyListBox">
    
      <ListBox.Resources>
        <Style TargetType="ListBoxItem">
          <Setter Property="Width" 
                  Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ScrollContentPresenter}, Path=ActualWidth}" />
        </Style>
      </ListBox.Resources>
    
      <ListBox.ItemTemplate>
        <DataTemplate>
          <TextBlock Text="{Binding Title}" TextWrapping="Wrap" />
        </DataTemplate>
      </ListBox.ItemTemplate>
    
    </ListBox>
    

    如果不起作用,请尝试使用 实时可视化树