Textblock中的标签自动换行不起作用

Unk*_*der 4 wpf word-wrap

我有一个包含很多对象的WPF页面.在所有这些项目的底部,我有一个标签,需要在内容中进行文本换行.答案很简单,使用Textblock这应该很简单.然而,即使我使用这些项目,我仍然无法得到文本包装.所以我假设在我需要检查/修改的其他对象中必须有其他设置.在伪代码中,我的XAML看起来像

<Page>
  <Stackpanel vertical>
   <Border>
    <Stackpanel vertical>
     <label></label>
    <Stackpanel horizontal>
     <label></label>
    </stackpanel>
   <label>
    <textblock TextWrapping="Wrap">
   </label>
  </border>
 </stackpanel>
</page>
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?我应该检查其他元素吗?我已经确定没有任何嵌套元素指定任何高度 - 它们都设置为auto.

Cha*_*dia 7

我将继续发布这个作为答案,以防其他人陷入困境.

当您设置控件的WidthHeight属性时TextBlock,它将首先水平增加大小以容纳包装文本之前的尽可能多的文本(如果TextWrapping属性设置为Wrap).一旦它决定需要包装文本,如果Height设置为Auto,文本框将垂直调整大小以容纳文本(直到它到达你放入的任何UI容器的底部).如果您不希望文本框调整超过某个点,则需要为MaxWidthMaxHeight属性设置值.这将迫使TextBlock包裹在一定宽度.