Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以资源文件为中心的DataGridTextColumn标题中的换行符_C#_Wpf_Datagrid - Fatal编程技术网

C# 以资源文件为中心的DataGridTextColumn标题中的换行符

C# 以资源文件为中心的DataGridTextColumn标题中的换行符,c#,wpf,datagrid,C#,Wpf,Datagrid,我想实现DataGridColumn中的标题有一个换行符2行,并且每个文本都居中。此外,文本应该来自一个资源文件。 我尝试使用ALT+ENTER在资源文件中换行,但文本未居中,如下所示: | LINE1LONG | | LINE2 | WPF中的我的DataGridTextColumn <DataGridTextColumn Width="4*" IsReadOnly="False" Header="{x:Static p:Resources.DG_HEADER_DESC

我想实现DataGridColumn中的标题有一个换行符2行,并且每个文本都居中。此外,文本应该来自一个资源文件。 我尝试使用ALT+ENTER在资源文件中换行,但文本未居中,如下所示:

| LINE1LONG |
| LINE2     |
WPF中的我的DataGridTextColumn

 <DataGridTextColumn Width="4*" IsReadOnly="False" 
  Header="{x:Static p:Resources.DG_HEADER_DESC}" Binding="{Binding Description, Mode=TwoWay}">
  </DataGridTextColumn>
定心适用于单线,但不适用于具有以下样式的双线:

 <Style TargetType="DataGridColumnHeader">
            <Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
        </Style>

有人有想法吗?

您可以为标题创建自定义模板,将文本居中放置在文本块中,而不是标题中的文本块:

<DataGrid>
    <DataGrid.Columns>
        <DataGridTextColumn>
            <DataGridTextColumn.Header>
                <GridViewColumnHeader>
                            <TextBlock TextAlignment="Center" Text="this is a text&#x0a;and here some more" />
                </GridViewColumnHeader>
            </DataGridTextColumn.Header>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

您可以为页眉创建自定义模板,将文本居中放置在文本块中,而不是页眉中的文本块:

<DataGrid>
    <DataGrid.Columns>
        <DataGridTextColumn>
            <DataGridTextColumn.Header>
                <GridViewColumnHeader>
                            <TextBlock TextAlignment="Center" Text="this is a text&#x0a;and here some more" />
                </GridViewColumnHeader>
            </DataGridTextColumn.Header>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

如果要保持使用资源文件的能力

    <DataGrid>
        <DataGrid.Columns>
            <DataGridTextColumn>

                <!-- Column Width--!>
                    <DataGridTextColumn.Width>4</DataGridTextColumn.Width> 
                <!-- Column Width--!>

                <DataGridTextColumn.IsReadOnly>False</DataGridTextColumn.IsReadOnly>

                <DataGridTextColumn.Binding>
                   <Binding Path="{Binding Description, Mode=TwoWay}"/>
                </DataGridTextColumn.Binding>

                <DataGridTextColumn.Header>
                    <DataGridColumnHeader Content="{x:Static p:Resources.DG_HEADER_DESC}" 
                                          HorizontalAlignment="Stretch" 
                                          HorizontalContentAlignment="Center" 
                                          TextBlock.TextAlignment="Center"> 

                        <!-- Header Width--!>
                            <DataGridColumnHeader.Width>4</DataGridColumnHeader.Width>
                       <!-- Header Width--!>

                    </DataGridColumnHeader> 
                </DataGridTextColumn.Header>
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>

如果要保持使用资源文件的能力

    <DataGrid>
        <DataGrid.Columns>
            <DataGridTextColumn>

                <!-- Column Width--!>
                    <DataGridTextColumn.Width>4</DataGridTextColumn.Width> 
                <!-- Column Width--!>

                <DataGridTextColumn.IsReadOnly>False</DataGridTextColumn.IsReadOnly>

                <DataGridTextColumn.Binding>
                   <Binding Path="{Binding Description, Mode=TwoWay}"/>
                </DataGridTextColumn.Binding>

                <DataGridTextColumn.Header>
                    <DataGridColumnHeader Content="{x:Static p:Resources.DG_HEADER_DESC}" 
                                          HorizontalAlignment="Stretch" 
                                          HorizontalContentAlignment="Center" 
                                          TextBlock.TextAlignment="Center"> 

                        <!-- Header Width--!>
                            <DataGridColumnHeader.Width>4</DataGridColumnHeader.Width>
                       <!-- Header Width--!>

                    </DataGridColumnHeader> 
                </DataGridTextColumn.Header>
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>