2

我在 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>

感谢您提供的任何见解。

4

2 回答 2

2

以我的经验,这通常是由于在某处错误地使用了“auto”高度标签或“starSizing”高度标签造成的。我会尝试为相关元素(尤其是您的 RowDefinition)设置固定高度并看到这有帮助

于 2013-03-30T20:30:37.763 回答
0

要拥有一个滚动的多行文本框,您不需要使用滚动查看器,您只需启用acceptreturn、textwrapping="wrap"、maxheight="160"(查看多行)加上VerticalScrollBarVisibility="Visible"。

要查看文本框中的滚动,请单击并按住按钮,然后出现插入符号,现在上下移动它,它将滚动浏览文本框。

于 2013-12-02T19:37:15.580 回答