RichEditBox 文本换行 UWP

RichEditBox text wrapping UWP

我正在尝试让 RichEditBox 接管应用程序的整个宽度 window 并响应 window 调整大小,到目前为止我拥有的代码是以下:

<RichEditBox HorizontalAlignment="Stretch"
             TextWrapping="WrapWholeWords"
             Height="250"
             Name="Intro"/>

我从上面的代码中得到的是:

关于如何让它工作的任何想法?为什么我告诉文本换行但它没有跟随?

更新

我也试过这个:

<RichEditBox HorizontalAlignment="Stretch"
                         Height="250"
                         Name="Intro"/>

但结果是:

我遇到的问题是 HorizontalAlignment="Stretch" 似乎什么也没做。我能够设置适当宽度的唯一方法是对其进行硬编码,例如:Width="600"。但如果我这样做,我的 UI 将无法正确响应调整大小。我也试过 HorizontalContentAlingment="Stretch" 但结果完全一样。

如何让我的RichEditBox同时占用所有可用的WidthWrap

如果您查看 RichEditBox.TextWrapping 的文档,您会发现 WrapWholeWords 是无效的。你必须使用

<RichEditBox TextWrapping="Wrap"/>
-or-
<RichEditBox TextWrapping="NoWrap"/>

由于 Wrap 是默认值,您可以删除 属性。

<RichEditBox HorizontalAlignment="Stretch"
             Height="250"
             Name="Intro"/>

编辑:回复更新后的问题:

控件只占用其父控件的宽度。一些容器控件(例如 Grid)自动占用可用的全部宽度,而其他容器控件(例如 StackPanel)仅占用其子项的所需大小。将 HorizontalAlignment="Stretch"StackPanel 结合使用作为父控件,将仅使用 MinWidth 属性 而不是屏幕上的完整可用宽度。有时你不能直接看到这个问题,例如当您的控件位于 ListView 的项模板内时。使用Visual Studio中的Live Visual Tree查找父容器,定位问题。

简而言之:确保您的 RichEditBox 在 Grid(或类似控件)而不是 StackPanel 中。