【问题标题】:Displaying a text box to show three lines显示文本框以显示三行
【发布时间】:2011-10-28 16:04:14
【问题描述】:

我想制作一个足够大的 WPF 文本框来显示 3 行文本。到目前为止,我有这个代码:

  System.Windows.Controls.TextBox myTextbox = new TextBox()
                {
                    AcceptsReturn = true,
                    MinLines = 3,
                    MaxLines = 3,
                    TextWrapping = TextWrapping.Wrap,
                    FontFamily = new FontFamily("Microsoft Sans Serif"),
                    FontSize = 11,
                };

但是,当 myTextBox 布局时,不能保证它有足够的高度来显示 3 行文本。理想情况下,我想将FontSize 指定为“小到myTextBox 有3 行文本的空间,而且不能更小”。有没有办法做到这一点?

【问题讨论】:

  • 这对我有用,正好给了我 3 行空间。它必须是您的布局中的样式或其他导致问题的东西。父控件是否限制了它的高度?
  • 是的,有一个布局上下文。当然,我可以尝试更改上下文而不是文本框。

标签: wpf layout textbox font-size


【解决方案1】:

这是基于我上面评论的插图。

<Border VerticalAlignment="Top" Height="Auto">
  <TextBox FontSize="11" MinLines="3" MaxLines="3" AcceptsReturn="True" FontFamily="Microsoft Sans Serif" VerticalAlignment="Top"/>
</Border>

给我三行。

<Border VerticalAlignment="Top" Height="11">
  <TextBox FontSize="11" MinLines="3" MaxLines="3" AcceptsReturn="True" FontFamily="Microsoft Sans Serif" VerticalAlignment="Top"/>
</Border>

只给我一个。 Border 限制了 TextBox 的高度。

【讨论】:

    【解决方案2】:

    好吧,我最终只是将TextBox 放入ScrollViewer,如下所示:

    System.Windows.Controls.ScrollViewer myScrollViewer = 
        new ScrollViewer(){Content = myTextbox};
    // Now place the ScrollViewer where the TextBox was before.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 2015-05-24
      相关资源
      最近更新 更多