在WP8中实现Bing搜索TextBox或地址栏TextBox

时间:2013-10-11 15:53:27

标签: c# windows-phone-7 windows-phone-8

在许多情况下,您需要TextBox高度为静态(即其默认值)。问题是,当允许用户在提供的滚动方法中放置无限字符串时,不太友好。

到目前为止,我设法做的是:

<ScrollViewer x:Name="Scroller" MaxWidth="416" HorizontalScrollBarVisibility="Hidden">
    <TextBox x:Name="Tb" TextChanged="TextBox_OnTextChanged" Background="{x:Null}" FontSize="25" MaxWidth="2048"/>
</ScrollViewer>

背后的代码:

    private void TextBox_OnTextChanged(object sender, TextChangedEventArgs e)
    {
         // if cursor is at the end of the text, scroll the ScrollViewer to the end 
        if (Tb.SelectionStart == Tb.Text.Length)
        {
            Scroller.ScrollToVerticalOffset(Tb.ActualHeight);
            return;
        }

        // else scroll to the appropriate spot
        if (!((Tb.SelectionStart * (Tb.ActualWidth / Tb.Text.Length) - Scroller.HorizontalOffset) < Scroller.ViewportWidth))
        {
            Scroller.ScrollToHorizontalOffset((Tb.SelectionStart) * (Tb.ActualWidth / Tb.Text.Length) - (Scroller.ViewportWidth - 55));
        }
    }

然而,这还不够坚实。 Tb.ActualWidth达到极限时出现问题,在文本中间移动插入符号时的滚动体验与Bing搜索框不同。

有没有办法在Windows Phone 8的IE中添加与Bing搜索框或地址栏相同的功能?

0 个答案:

没有答案