Windows Phone 8滚动文本框的内容

Dev*_*Dev 8 c# xaml scrollviewer windows-phone-8

问题:TextBox当我在里面输入大文本时,我无法在键入内部时看到我的指针TextBox

描述:

  1. 每当用户在里面TextBox输入文本时,如果输入的文本很大,则应启用滚动.
  2. ScrollViewer仅显示TextBox高度内的内容ScrollViewer
  3. 当我输入几行文字时出现问题(指针不可见)
  4. 然后我会向下滚动看到指针,进入几行后再出现问题

码:

<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
        <TextBlock Text="Scroll Content Inside Textbox" Style="{StaticResource PhoneTextNormalStyle}" Margin="25,0,180,0"/>
    </StackPanel>

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

        <ScrollViewer Height="200"
                      VerticalAlignment="Top">
            <TextBox x:Name="txtBody"
                     Width="200"
                     AcceptsReturn="True"
                     />
        </ScrollViewer>
    </Grid>

</Grid>
Run Code Online (Sandbox Code Playgroud)

Dev*_*Dev 11

MainPage.xaml中

<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
        <TextBlock Text="Scroll Content Inside Textbox" Style="{StaticResource PhoneTextNormalStyle}" Margin="25,0,180,0"/>
    </StackPanel>

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

        <ScrollViewer Height="200"
                Name="scrlView"
                VerticalAlignment="Top">
                <TextBox x:Name="txtBody"
                     Width="200"
                     AcceptsReturn="True" KeyUp="txtBody_KeyUp"/>
        </ScrollViewer>

    </Grid>
</Grid>
Run Code Online (Sandbox Code Playgroud)

MainPage.xaml.cs中

    private void txtBody_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
    {
        if (e.Key == System.Windows.Input.Key.Enter)
        {
            scrlView.UpdateLayout();
            scrlView.ScrollToVerticalOffset(scrlView.ExtentHeight);
        }
    }
Run Code Online (Sandbox Code Playgroud)

特技:

(1)将ScrollViewer命名为scrlView

(2)我在TextBox的KeyUp事件中编写了代码

(3)每当用户按Enter键,然后通过代码向下滚动TextBox

感谢大家宝贵的时间和支持