我试图获得一个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?
发布于 2016-07-24 10:18:46
如果您查看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中的活视觉树查找父容器并定位问题。
因此,简而言之:确保您的RichEditBox位于网格(或类似的控件)中,而不是StackPanel中。
https://stackoverflow.com/questions/38548361
复制相似问题