Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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# iTextSharp:PdfPCell中使用了哪些对齐属性?_C#_Itextsharp - Fatal编程技术网

C# iTextSharp:PdfPCell中使用了哪些对齐属性?

C# iTextSharp:PdfPCell中使用了哪些对齐属性?,c#,itextsharp,C#,Itextsharp,当我使用单元格的对齐方式使其工作时: PdfPCell cell1 = new PdfPCell(new Phrase("Text" , Font)); cell1.HorizontalAlignment = 2; 但一旦对齐不起作用: PdfPCell cell1 = new PdfPCell(); cell1.AddElement(new Phrase("Text 1", Font)); cell1.AddElement(new Phrase("Text 2", Font)); cell1

当我使用单元格的对齐方式使其工作时:

PdfPCell cell1 = new PdfPCell(new Phrase("Text" , Font));
cell1.HorizontalAlignment = 2;
但一旦对齐不起作用:

PdfPCell cell1 = new PdfPCell();
cell1.AddElement(new Phrase("Text 1", Font));
cell1.AddElement(new Phrase("Text 2", Font));
cell1.HorizontalAlignment = 2;
原因是什么?

您混淆了文本模式和复合模式

在第一个代码段中,您以文本模式工作。这意味着单元格的内容仅被视为文本,单元格的属性得到尊重,而添加到单元格的元素的属性被忽略

在第二个代码段中,您在复合模式下工作。当您使用
AddElement()
方法时,单元格将切换到复合模式。在这种情况下,将忽略单元格的属性。而是使用元素的属性

例如:在文本模式下,单元格内容只能有一种对齐方式。在复合模式下,可以在同一单元格中有左对齐的段落、居中对齐的段落和右对齐的段落。

现在是的,它起作用了

PdfPCell cell1 = new PdfPCell();
Paragraph p1 = new Paragraph("Text 1", Font);
p1.Alignment = Element.ALIGN_RIGHT;
Paragraph p2 = new Paragraph("Text 2", Font);
p2.Alignment = Element.ALIGN_RIGHT;

cell1.AddElement(p1);
cell1.AddElement(p2);

谢谢。

因此,在
文本模式下
单元格不能有
单元格。水平对齐=元素。居中对齐
+
单元格。垂直对齐=元素。居中对齐
。这是一个选项或另一个选项,而不是同时进行两种对齐?在复合模式(非文本模式)中,为
单元格设置的任何值。水平对齐将被忽略,以利于单元格中元素的水平对齐。我没有说任何关于垂直对齐的内容。这不是
段落
图像
,…的属性,这个答案实际上有一个有效的代码示例