首页 文章

WPF TextBox的多行

提问于
浏览
306

我正在开发一个应用程序来发送一些反馈 .

基本上我正在尝试制作一个 TextBox 评论,但我已经习惯了WinForms MultiLine=true . 我已将 MinLines 设置为3,即将到达,但最好是我喜欢它,如果用户能够在此块中的任何位置键入 - 例如按Enter键并执行点点类型的操作 . 例如:

- Item 1        blah
- Item 2                blahlb lahbvl   d

但目前文本都停留在一行 .

- Item 1         blah - Item 2                      blahb blahb blah

这些评论将有助于填写发送的电子邮件的正文 . 如果在将此字符串放入电子邮件正文字符串时无法轻松保持相同的格式设置(这样看起来就像在键入时一样发送它),这可能毫无意义 .

我可以实现我所追求的目标,还是必须将其作为一行中的所有文本保留?

4 回答

  • 32

    在TextBox上启用 TextWrapping="Wrap"AcceptsReturn="True" .

    您可能还希望启用 AcceptsTabSpellCheck.IsEnabled .

  • 12

    以下示例 XAML 将允许 TextBox 接受多行文本并使用它自己的Scrollbars:

    <TextBox
    Height="200"
    Width="500"
    TextWrapping="Wrap"
    AcceptsReturn="True"
    HorizontalScrollBarVisibility="Disabled"
    VerticalScrollBarVisibility="Auto"/>
    
  • 653

    与@Andre Luus相反,设置 Height="Auto" 不会使 TextBox 拉伸 . 我发现的解决方案是设置 VerticalAlignment="Stretch"

  • 10

    另外,如果像我一样,你直接在XAML中添加控件(不使用编辑器),即使设置了这两个属性,你也可能会感到沮丧,它不会伸展到可用的高度 .

    要使TextBox拉伸,请设置 Height="Auto" .

    UPDATE:

    回想起来,我认为这一定是必要的,这要归功于TextBoxes的默认样式,它指定应用程序资源中某处应用程序的某些标准高度 . 如果这有助于您,可能值得检查一下 .

相关问题