我试图创建一个聊天应用程序,我试图利用RichTextBox控件进行聊天记录,用户输入消息的文本框和用户在线板。但是WPF不允许我拥有超过1个RichTextBox。每当我复制粘贴窗口上唯一的richtextbox时,WPF会创建它的副本但删除第一个RTB。它也不允许我拖放一个。我有什么调整以允许自己放弃更多控件?
答案 0 :(得分:0)
您可以在窗口中放置Grid
或任何其他Panel
,例如StackPanel
,DockPanel
等,并在其中放置2个RichTextBox。 Window
是ContentControl
,这意味着它只能容纳1个控件。网格是Panel
,因此它可以容纳任意数量的控件。
您可以在网格中制作列和行,或明确使用边距来定位RichTextBox
es。
答案 1 :(得分:0)
任何Window
只能有一个子元素。在您的情况下,根据您打算如何布置RTB,您需要某种Panel
。这是一个很好的place to start。
这是一个非常快速的例子(剥离),解释了一点:
<Window>
<!-- You could put a RTB here, but that would become your root control, and it can't have any siblings -->
<Grid>
<!-- Use something like this to layout your inner RichTextBoxes -->
<Grid.RowDefinitions>
<RowDefinition Height="9*" /> // using 9/10 of the available vertical space
<RowDefinition Height="1*" /> // using 1/10 of the available vertical space
</Grid.RowDefinitions>
<!-- Here you can put multiple controls -->
<RichTextBox Grid.Row="0"></RichTextBox>
<RichTextBox Grid.Row="1"></RichTextBox>
</Grid>
</Window>