Windows Phone App中的TextBox滚动无法正常工作

时间:2013-03-22 16:17:44

标签: xaml scroll windows-phone

我在Windows Phone应用中有一个页面。这个页面相当“高”。因此,整个页面都包含在ScrollViewer中。在页面底部是TextBox。此TextBox旨在成为包含TextBox的多行TextWrapping="Wrap"。我需要用户能够在TextBox内向上和向下滚动以查看他们输入的内容。但是,我无法在TextBox内滚动。相反,当我尝试滚动时,整个页面会滚动。我该如何解决这个问题?我尝试添加ScrollViewer.VerticalScrollBarVisibility="Auto"但是,这似乎也没有用。这是我的XAML的一部分。

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
  </Grid.RowDefinitions>

  <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
    <TextBlock x:Name="ApplicationTitle" Text="APPNAME" Style="{StaticResource PhoneTextNormalStyle}" />
    <TextBlock x:Name="PageTitle" Text="{Binding Path=PageTitle}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
  </StackPanel>

  <ScrollViewer Grid.Row="1">
    <Grid x:Name="ContentPanel" Margin="12,0,12,0">
       ...
      <TextBox x:Name="bodyTextBox" Text="{Binding Path=Body, Mode=TwoWay}" Height="145"  TextWrapping="Wrap" InputScope="Text" Grid.Row="6" MaxLength="1024" Margin="0,-8,0,0" />
    </Grid>
  </ScrollViewer>
</Grid>

感谢您提供的任何见解。

2 个答案:

答案 0 :(得分:2)

根据我的经验,这通常是由于在某处错误地使用“自动”高度标记或“starSizing”高度标记引起的。我会尝试为相关元素(特别是你的RowDefinition)设置固定的高度,看看有帮助

答案 1 :(得分:0)

要拥有一个滚动的多行文本框,您不需要使用scrollviewer,只需启用accepreturn,textwrapping =“wrap”,maxheight =“160”(查看多行)以及VerticalScrollBarVisibility =“Visible ”

要查看文本框中的滚动,您单击并按住按钮然后会出现一个插入符号,现在可以上下移动它,它将滚动文本框。