首页 文章

如何使用包装文本而不是截断文本的单元格获取WPF Datagrid?

提问于
浏览
36

使用包装文本而不是截断文本的单元格来获取WPF DataGrid必须做些什么?

现在,当文本较大且不适合列时,文本会被截断,用户无法看到它的值,因为DataGrid的IsReadOnly属性为true . 我想要的是,单元格中的文本被包装,单元格高度(NO CELL WIDTH)增加了显示所有文本所需的数量 .

3 回答

  • 10

    我做了类似于D.Rosados解决方案的东西 . 但是,如果您有更多需要包装的列,那么我的可重复使用 .

    <UserControl.Resources>
        <Style TargetType="{x:Type TextBlock}" x:Key="WrapText">
            <Setter Property="TextWrapping" Value="Wrap"/>
        </Style>
    </UserControl.Resources>
    
    <DataGrid.Columns>
        <DataGridTextColumn IsReadOnly="False" Header="Address" 
         Binding="{Binding Address}" ElementStyle="{StaticResource WrapText}" Width="150"/>
    </DataGrid.Columns>
    
  • 79

    您可以尝试使用启用了文本换行的 TextBlock 来模拟单元格 .

  • 15

    谢谢你的帮助@H.B.,这对我有用(对齐是可选的):

    <DataGrid.Columns>               
        <DataGridTextColumn Header="Wrapped & centered" Binding="{Binding field}">
            <DataGridTextColumn.ElementStyle>
                 <Style>                            
                     <Setter Property="TextBlock.TextWrapping" Value="Wrap" />
                     <Setter Property="TextBlock.TextAlignment" Value="Center"/>
                 </Style>
             </DataGridTextColumn.ElementStyle>
        </DataGridTextColumn>
    </DataGrid.Columns>
    

相关问题