0
真ん中にあるTableColumnの垂直方向の配置が可能ですか?TableColumn/Paragraph内のテキストを整列する
表の表のセルに段落を追加します。そしてこのテーブルをrichTexBoxコントロールに追加します。 問題は、中央の列が画像(顔文字)で構成されており、「縦の中心に合わせる」ことです。
私はそれを記述することは難しいです。
Iは中央の縦第一および第3の列を整列たい:ここ
画像です。
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** };
Iドン私はこの3列の表を作成するのと同じ「レベル:.
のFuncに、この3列内のテキストがここにありたいです「tはどのように垂直段落の整列
EDIT:
は、たぶん私は、段落に画像を追加する方法方法に問題があり、ここではコードです:
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の列にVerticalアライメントを設定する必要があります。 –
インラインで設定する必要があります。共通テキストにはランインラインを使用します。次のようなパラグラフp =新しい段落(新規実行( "MyText"){BaselineAlignment = BaselineAlignment.Center})またはblockElement.Inlines.Add(新規実行( "MyText"){BaselineAlignment = BaselineAlignment.Center}); – HCL
ありがとう、私はそれを試して、それは動作しません。たぶん私はパラグラフに画像を追加する方法の問題です。私は私の質問を編集しました。一番下はコードです。 –