WPF DataGrid文本包装在标题和其他地方

时间:2011-05-27 08:48:20

标签: c# wpf datagrid textwrapping

我想在WPF DataGrid列标题和行内容中启用文本换行。 在寻找解决方案时,我经常偶然发现this之类的东西。问题是,它不适合我。

首先,我对这一行有疑问:

xmlns:primitives="clr-namespace:Microsoft.Windows.Controls.Primitives;assembly=WPFToolkit"

我收到有关未找到程序集的错误。 其余的XAML代码存在更多问题。

<Style TargetType="{x:Type primitives:DataGridColumnHeader}">
<Setter Property="ContentTemplate">
    <Setter.Value>
        <DataTemplate>
            <TextBlock TextWrapping="Wrap" Text="{Binding}"></TextBlock>
        </DataTemplate>
    </Setter.Value>
</Setter>
</Style>

我将它放在DataGrid标记内,否则将无法编译。我也省略了“primitives”-namespace,因为我实际上没有包含它(见上文)。现在它编译。但是,应用程序在窗口的构造函数中抛出一些异常。知道我怎么能让这个东西真正起作用吗?

2 个答案:

答案 0 :(得分:7)

答案 1 :(得分:4)

不需要对app.xaml的引用,如下所示:

<DataGrid Name="WBdataGrid" AutoGenerateColumns="False" ColumnHeaderHeight="50" >
  <DataGrid.ColumnHeaderStyle>
    <Style TargetType="DataGridColumnHeader">
      <Setter Property="ContentTemplate">
        <Setter.Value>
          <DataTemplate>
            <TextBlock TextWrapping="Wrap" Text="{Binding}"></TextBlock>
          </DataTemplate>
        </Setter.Value>
      </Setter>
    </Style>
  </DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>