如何在包含回车的WPF GridView中显示文本

时间:2012-03-28 20:28:36

标签: c# wpf gridview multiline

我有一个网格视图,它有两个简单的列,一个报告编号和一个简短描述。这个简短的描述通常有一些回车。如果是这种情况,我希望该行扩展其高度以适应所有文本。

目前,该字段呈现可能显示第一行,但随后切断其下方的文本。如何显示所有文本,并根据需要调整高度?

这可以按行进行,例如,如果下一个报告没有带回车的描述,它只会显示在一行上吗?

这将是similar to this question,而是WPF与ASP.net

这也可能是由于广泛使用主题应用程序。如果是这种情况,我该如何仅在此网格视图中强制执行它?

XAML:

最初我只把它作为

<GridViewColumn Width="365" Header="Desc" DisplayMemberBinding="{Binding desc}" />

我也试过

<GridViewColumn x:Name="colDesc" Header="Desc" Width="75" >
     <GridViewColumn.CellTemplate>
          <DataTemplate>
              <TextBlock Text="{Binding Desc}" />
          </DataTemplate>
     </GridViewColumn.CellTemplate>
</GridViewColumn>

我们正在使用应用程序范围的主题,很可能明确地设置了高。如果是这样,我主要倾向于(从评论中)主题是覆盖其工作原理的默认值。如果是这样,我如何让它按照预期的方式运行(再次,从评论中,它听起来像是默认行为)。

使用第二个例子,这是它的样子:

enter image description here

在这里它看起来像文字更大,所以再次,我希望细胞调整到所需的高度。其中一些有多行,所以你可以看到我不会看到剩余的内容。我也尝试在文本块上设置高度,但这没有任何效果。

1 个答案:

答案 0 :(得分:3)

这很有用。

 public string TextBlockText { get { return "one line \r\ntwo line"; } }

 <TextBlock Height="Auto" Width="100" HorizontalAlignment="Left" Text="{Binding Path=TextBlockText}" />

关于如何将TextBlock放入ListView,我将留给你。