가운데의 TableColumn에서 세로 정렬 텍스트가 가능합니까?TableColumn/단락의 텍스트 정렬
표의 표 셀에 단락을 추가합니다. 그리고이 테이블을 richTexBox 컨트롤에 추가합니다. 중간 열은 이미지 (이모티콘)로 구성되며 "수직 중심에 정렬"되어있는 것이 문제입니다.
설명하기가 어렵습니다.
I가 중간 수직 첫 번째 및 세 번째 열의 정렬하고자 : 여기
은 이미지이다. 는public Table ConvertToTabRp(IRp rp, string avatarNick)
{
var tempRp = new Rp { RpText = rp.RpText, Nick = rp.Nick, Time = rp.Time, Your = rp.Your };
if (tempRp.Your)
tempRp.Nick = avatarNick;
string time = string.Format(CultureInfo.CurrentCulture, "{0}", DateTime.ParseExact(tempRp.Time, "yyyy-MM-dd HH:mm:ss", null)
.ToString("dd-MM-yyyy HH:mm:ss").Replace("-", "."));
var tab = new Table {Margin = new Thickness(0, 0, 0, 0)};
var gridLenghtConvertor = new GridLengthConverter();
//1. col
tab.Columns.Add(new TableColumn { Name = "colNick", Width = (GridLength)gridLenghtConvertor.ConvertFromString("100") });
//2.col
tab.Columns.Add(new TableColumn { Name = "colMsg", Width = (GridLength)gridLenghtConvertor.ConvertFromString("Auto") });
//3.col
tab.Columns.Add(new TableColumn { Name = "colDt", Width = (GridLength)gridLenghtConvertor.ConvertFromString("150") });
tab.RowGroups.Add(new TableRowGroup());
tab.RowGroups[0].Rows.Add(new TableRow());
var tabRow = tab.RowGroups[0].Rows[0];
//1.col - NICK
var pNick = new Paragraph(new LineBreak()) { TextAlignment = TextAlignment.Left };
pNick.Inlines.Add(new Run(tempRp.Nick));
if (!tempRp.Your)
{
pNick.Foreground = Brushes.DodgerBlue;
}
tabRow.Cells.Add(new TableCell(pNick));
//2.col - MESSAGE
tabRow.Cells.Add(new TableCell(ConvertToRpWithEmoticons(tempRp.RpText)) { TextAlignment = TextAlignment.Left});
//3.col - DATE TIME
var pTime = new Paragraph(new LineBreak()) { TextAlignment = TextAlignment.Right };
pTime.Inlines.Add(time);
tabRow.Cells.Add(new TableCell(pTime));
return tab;
}
어쩌면 솔루션은 다음과 같습니다 :
var pNick = new Paragraph(new LineBreak()) { TextAlignment = TextAlignment.Left , **VerticalTextAligment = Center** };
나는 돈 나는이 3 열이있는 테이블을 만들 때와 같은 "수준 :.
Func을에이 3 열에서 텍스트가 여기에 원하는 단락의 't 방법 수직 정렬
편집 :.
,아마 여기, 내가 단락에 이미지를 추가하는 방법을 방법으로 문제는 코드입니다
var image = new Image
{
Source = new BitmapImage(new Uri(path, UriKind.RelativeOrAbsolute)),
Width = 20,
Height = 20,
};
para.Inlines.Add(new Run(separatemsg.Text) { BaselineAlignment = BaselineAlignment.TextBottom });
//insert smile
para.Inlines.Add(new InlineUIContainer(image) {BaselineAlignment = BaselineAlignment.Bottom});
이 단락은 2 열을 추가합니다.
이미지를 구성하는 InlineUiContainer에서이 속성을 설정하려고 시도하지만 도움이되지 않습니다. 이 속성은 Paragrapg 또는 TableCell로 설정할 수 있습니까? 나는 1.과 3. 란에 세로 정렬을 설정해야합니다. –
인라인으로 설정해야합니다. 일반 텍스트에는 Run-Inline을 사용하십시오. 다음과 같은 단락 p = 새로운 단락 (새 Run ("MyText") {BaselineAlignment = BaselineAlignment.Center}) 또는 blockElement.Inlines.Add (새 Run ("MyText") {BaselineAlignment = BaselineAlignment.Center}); – HCL
고마워, 해보지 만 작동하지 않습니다. 단락에 이미지를 추가하는 방법에 문제가있을 수 있습니다. 나는 나의 질문을 편집했다. 하단에는 코드가 있습니다. –