WPF TextBlock 和 TextBox 有什么区别?

83

当选择这两种控件之一时,我应该考虑哪些标准?


还有一个名为 RichTextBox 的控件。 - User
2个回答

124

TextBlock和TextBox的共同点:

  • 可以用于显示文本。
  • 可以设置特定的高度和宽度,或设置为自动调整大小以随着文本增长而增大。
  • 可以设置字体大小、字体类型、字体样式,以及文本是否换行和左对齐、右对齐或居中对齐。
  • 可以设置不透明度和应用像素着色器。

TextBlock:

  • 用于更加注重排版的文本显示。
  • 可以包含文本集合,每个文本集合可以设置不同的颜色、字体和大小。
  • 还可以通过增加行距来增加每行文本之间的间距。
  • 用户无法选择 TextBlock 中的文本。

TextBox:

  • 用于更加注重内容输入或需要让用户选择内容的文本显示。
  • 只能设置一种颜色、一种字体大小、一种字体类型等。
  • 具有固定的行距。
  • 也可以设置固定的高度和宽度,但同时打开滚动条以允许内容扩展。

文本如何聚焦?哦,好的;我花了一段时间才明白“聚焦”是描述控件而不是文本。 - Sam Hobbs

23

TextBlock 是一种更轻量级的控件,用于显示文本。而当需要用户输入或编辑现有文本时,则会使用 TextBox 控件。这里提供内存使用证明


1
不确定TextBlock是否比TextBox更轻。证据呢? - Mike Keskinov
2
你好,Mike。确实,在内存使用方面,文本框要更重:https://s22.postimg.org/qse9gxfch/memusage.png - VidasV
5
如果将来某个时间证明图像消失了。您的示例显示内存使用量增加了14倍。代码在对新的文本块和文本框执行堆栈.Children.Add之前和之后使用GC.GetTotalMemory(true)来检查内存差异。 - Alex Telon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接