2016-07-24 47 views
1

我试图让一个RichEditBox接管应用程序窗口的整个宽度,以响应窗口大小调整,到目前为止,我的代码如下:RichEditBox文字环绕UWP

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

什么我从上面的代码是这样的: enter image description here

任何想法,我怎么能得到这个工作?为什么我告诉文本要包装并且不遵循?

UPDATE

我也试过这样:

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

但结果是:

enter image description here

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

我怎样才能让我的RichEditBox占用所有可用的WidthWrap在同一时间?

回答

1

如果您查看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的itemtemplate中时。使用Visual Studio中的Live Visual Tree查找父容器并找到问题。

简而言之:请确保您的RichEditBox位于网格(或类似的控件)内而不是StackPanel。

+0

感谢您的建议!我更新了这个问题。似乎问题在于'RichEditBox'不想'Stretch'。请检查出来,如果你可以,并让我知道你是否有任何其他想法。 – CStruggle

+0

好的,所以我的RichEditBox在ListViewItem里面......你是在说我必须在所有父母中放置Horizo​​ntalAlignment = Stretch? – CStruggle