我正在尝试让RichEditBox
接管应用程序窗口的整个宽度并响应窗口大小调整,到目前为止我的代码如下:
<RichEditBox HorizontalAlignment="Stretch"
TextWrapping="WrapWholeWords"
Height="250"
Name="Intro"/>
有关如何使其发挥作用的任何想法?为什么我告诉文本包装它不会跟随?
更新
我也试过这个:
<RichEditBox HorizontalAlignment="Stretch"
Height="250"
Name="Intro"/>
但结果是:
我遇到的问题是HorizontalAlignment="Stretch"
似乎没有做任何事情。我能够设置合适宽度的唯一方法是对其进行硬编码,例如:Width="600"
。但是,如果我这样做,我的UI将无法正确响应调整大小。我也尝试了HorizontalContentAlingment="Stretch"
,但结果完全相同。
如何让RichEditBox
同时接收所有可用的Width
和 Wrap
?
答案 0 :(得分:1)
如果查看RichEditBox.TextWrapping的文档,您会发现<RichEditBox TextWrapping="Wrap"/>
-or-
<RichEditBox TextWrapping="NoWrap"/>
无效。你必须使用
<RichEditBox HorizontalAlignment="Stretch"
Height="250"
Name="Intro"/>
由于Wrap是默认值,因此您可以删除该属性。
Grid
编辑:回复更新的问题:
控件仅获取其父控件的宽度。某些容器控件(例如StackPanel
)会自动获取可用的全部宽度,而其他容器控件(例如HorizontalAlignment="Stretch"
)仅获取其子级所需的大小。将StackPanel
与MinWidth
结合使用作为父控件,只会使用ListView
属性而不是屏幕上的完整可用宽度。有时您无法直接看到此问题,例如当你的控件位于for
的itemtemplate中时。使用Visual Studio中的Live Visual Tree查找父容器并找到问题。
简而言之:确保您的RichEditBox位于Grid(或类似控件)中,而不是StackPanel。