【问题标题】:WPF won't allow more than 1 RichTextBoxWPF 不允许超过 1 个 RichTextBox
【发布时间】:2016-04-15 21:44:19
【问题描述】:

我正在尝试创建一个聊天应用程序,并尝试将 RichTextBox 控件用于聊天日志、用户输入消息的文本框和用户在线留言板。但是 WPF 不允许我拥有超过 1 个 RichTextBox。每当我复制粘贴窗口上唯一的丰富文本框时,WPF 都会创建它的副本,但会删除第一个 RTB 。它也不允许我拖放一个。我必须调整什么才能让自己放弃更多控制?

【问题讨论】:

  • 我认为你的一些 xaml 代码在这里会很有用
  • 更有可能是 Visual Studio Designer 的问题。如果您尝试将 RichTextBox 添加(拖放)到某个 ContentControl 中,而不是添加到 Panel 中,设计器会替换以前的内容(以前的 RTB)
  • pastebin.com/aLY5ia0A,代码!

标签: c# wpf


【解决方案1】:

任何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>

【讨论】:

    【解决方案2】:

    您可以在窗口中放置Grid 或任何其他Panel,如StackPanelDockPanel 等,并在其中放置2 个RichTextBox。 WindowContentControl,这意味着它只能拥有 1 个控件。 Grid 是Panel,因此它可以容纳任意数量的控件。

    您可以在网格中创建列和行,或显式使用边距来定位您的RichTextBoxes。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 2020-01-11
      • 1970-01-01
      • 2020-07-20
      • 2011-01-03
      • 1970-01-01
      相关资源
      最近更新 更多