RichEditBox文本包装UWP

时间:2016-07-24 03:07:59

标签: xaml uwp uwp-xaml richeditbox

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

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

我从上面的代码得到的是: enter image description here

有关如何使其发挥作用的任何想法?为什么我告诉文本包装它不会跟随?

更新

我也试过这个:

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

但结果是:

enter image description here

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

如何让RichEditBox同时接收所有可用的Width Wrap

1 个答案:

答案 0 :(得分:1)

如果查看RichEditBox.TextWrapping的文档,您会发现<RichEditBox TextWrapping="Wrap"/> -or- <RichEditBox TextWrapping="NoWrap"/> 无效。你必须使用

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

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

Grid

编辑:回复更新的问题:

控件仅获取其父控件的宽度。某些容器控件(例如StackPanel)会自动获取可用的全部宽度,而其他容器控件(例如HorizontalAlignment="Stretch")仅获取其子级所需的大小。将StackPanelMinWidth结合使用作为父控件,只会使用ListView属性而不是屏幕上的完整可用宽度。有时您无法直接看到此问题,例如当你的控件位于for的itemtemplate中时。使用Visual Studio中的Live Visual Tree查找父容器并找到问题。

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