在WP8.1 XAML中自动向TextBox添加换行符

时间:2014-06-27 21:39:33

标签: wpf xaml windows-phone-8.1

我正在尝试构建一个Windows Phone 8.1应用程序,有些东西真的困扰我: ![看看] http://i.imgur.com/XO7oOmT.png

正如您所看到的,当文本到达结尾时,TextBox不会创建并转到新行。我该怎么办?我尝试使用谷歌搜索,但无法真正找到它(我确信我使用了错误的关键字,但我对此都是新手。)

无论如何,这里是我正在使用的XAML代码(我在Google上找到了一些我没有找到的东西)

查看" contentTextBox":

        <Grid x:Name="LayoutRoot" Background="WhiteSmoke">

        <Grid.ChildrenTransitions>
            <TransitionCollection>
                <EntranceThemeTransition/>
            </TransitionCollection>
        </Grid.ChildrenTransitions>

        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TODO: Content should be placed within the following grid-->
        <Grid Grid.Row="0" x:Name="TitleRoot" Margin="0,0,0,0">
            <TextBox x:Name="titleTextBox" Text="Title"/>
        </Grid>
        <Grid Grid.Row="1" x:Name="ContentRoot" Margin="0,0,0,0">
            <StackPanel Height="Auto">
                <TextBox x:Name="contentTextBox" Text="" HorizontalAlignment="Stretch" VerticalAlignment="Top" AcceptsReturn="True" Width="Auto"/>
            </StackPanel>
        </Grid>
    </Grid>

3 个答案:

答案 0 :(得分:2)

启用TextWrapping有帮助!

<TextBox x:Name="contentTextBox" 
         TextWrapping="Wrap" 
         Text="" 
         HorizontalAlignment="Stretch" 
         VerticalAlignment="Top" 
         AcceptsReturn="True" 
         Width="Auto" />

这意味着 - 当你离开水平空间时,换行到另一行。

答案 1 :(得分:1)

您需要打开TextWrapping,还需要将其从StackPanel中删除或给它一个固定的大小。

StackPanel将允许TextBox水平地无限增长,因为你有Width="Auto"HorizontalAlignment="Stretch",TextBox无法知道它何时应该停止拉伸,并且会随着你的文本而增长。

删除StackPanel,并保持HorizontalAlignment="Stretch"(可以删除宽度,因为默认为自动),TextBox将占用屏幕宽度的100%,并且在您键入时不会调整大小

答案 2 :(得分:0)

尝试设置

<TextBox ScrollViewer.HorizontalScrollMode="Disabled" TextWrapping="Wrap"/>

 <Grid Grid.Row="1" x:Name="ContentRoot" Margin="0,0,0,0">
        <StackPanel Height="Auto">
            <TextBox x:Name="contentTextBox" Text="Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt." HorizontalAlignment="Stretch" ScrollViewer.HorizontalScrollMode="Disabled" VerticalAlignment="Top" AcceptsReturn="True" TextWrapping="Wrap" Width="Auto"/>
        </StackPanel>
  </Grid>

<强> ScrollViewer.Horizo​​ntalScrollMode =&#34;禁用&#34; :这意味着ScrollViewer没有给出&#34; Auto&#34;宽度到文本框,即使文本框超出其有界/可见宽度

TextWrapping =&#34;换行&#34; :如果文字不适合它的宽度,它就会到达下一行。

enter image description here