C# 在wpf中,如何使两个段落块在同一级别上按级别排列,保持一个段落块左对齐,另一个段落块右对齐?

C# 在wpf中,如何使两个段落块在同一级别上按级别排列,保持一个段落块左对齐,另一个段落块右对齐?,c#,.net,wpf,C#,.net,Wpf,我正在制作一个聊天窗口,我只希望消息和日期时间应该在同一个直线上,并且在相同的基础上,在消息和日期时间段块中不应该有新行 String loginsays = "\n" + nick+ " says: "; Run run = new Run(loginsays); run.Foreground = new SolidColorBrush(Colors.DodgerBlue); myParagraph.Inlines.Add(new TextBlock(run)); fldoc.Block

我正在制作一个聊天窗口,我只希望消息和日期时间应该在同一个直线上,并且在相同的基础上,在消息和日期时间段块中不应该有新行

String loginsays = "\n" + nick+ " says: ";
Run run = new Run(loginsays);

run.Foreground = new SolidColorBrush(Colors.DodgerBlue);

myParagraph.Inlines.Add(new TextBlock(run));

fldoc.Blocks.Add(myParagraph);

Run run2 = new Run(msg);
run2.Foreground = new SolidColorBrush(Colors.Black);

myParagraph.Inlines.Remove(run);
myParagraph.Inlines.Add(new TextBlock(run2));
fldoc.Blocks.Add(myParagraph);

//(DateTime.Now.ToString("hh:mm:tt")
System.Windows.Documents.Paragraph datetime =
    new System.Windows.Documents.Paragraph();
Run rundate = new Run(dt);
rundate.Foreground = new SolidColorBrush(Colors.DarkGray);
datetime.Inlines.Add(new TextBlock(rundate));
datetime.TextAlignment = TextAlignment.Right;

datetime.FontSize = 10;
fldoc.Blocks.Add(datetime);


我已经制作了两个区块,一个用于聊天,另一个用于日期,一个是左对齐,另一个是右对齐。

我想你可以(ab)使用a。

你可以(ab)使用a,我想。

可能不是你想要的确切答案,但是我认为
流程文档
不是最好的UI控件。我将使用
ListBox
并为
ListBoxItem
创建一个
ItemTemplate
,作为网格布局(一行三列)。此外,我将创建一个表示聊天消息的类(具有who、what和when属性),将其保存在所有聊天信息的
可观察集合中,并将其绑定到
列表框的
项源

可能不是您想要的确切答案,但是我认为
流程文档
不是用于此目的的最佳UI控件。我将使用
ListBox
并为
ListBoxItem
创建一个
ItemTemplate
,作为网格布局(一行三列)。此外,我将创建一个表示聊天消息的类(具有用于谁、什么和什么时候的属性),将其保存在所有聊天消息的
可观察集合中,并将其绑定到
列表框的
项源

当文本太长以至于必须包装时会发生什么?它能像一张桌子一样工作吗?或者你想要更智能的东西吗?当文本太长以至于必须换行时会发生什么?它能像桌子一样吗?还是你想要更智能的东西?