Windows phone 8 打开SIP时查看WP8上LongListSelector中的顶部项目

Windows phone 8 打开SIP时查看WP8上LongListSelector中的顶部项目,windows-phone-8,longlistselector,Windows Phone 8,Longlistselector,我有一个应用程序,它使用LongListSelector来显示项目列表,在页面底部有一个文本框。轻触文本框时,SIP会自动显示。此时,我无法滚动到LLS的顶部 示例代码: XAML: C#: public主页() { 初始化组件(); 已加载+=(发送方,参数)=> { var list=新列表(); 对于(变量i=0;i

我有一个应用程序,它使用LongListSelector来显示项目列表,在页面底部有一个文本框。轻触文本框时,SIP会自动显示。此时,我无法滚动到LLS的顶部

示例代码:

XAML:


C#:

public主页()
{
初始化组件();
已加载+=(发送方,参数)=>
{
var list=新列表();
对于(变量i=0;i<30;i++)
{
添加(“这是字符串编号”+i);
}
TheList.ItemsSource=列表;
};
}
这就是我所能看到的,我可以下拉到字符串5,但看不到更高的:


有人有什么想法吗

ScrollViewer不考虑SIP,因此其滚动体验与SIP不可见时相同(这就是无法到达顶部的原因)。一种解决方法是在显示SIP时,在
LongListSelector
的顶部添加边距(如果文本框位于顶部,则在底部添加边距)

由于SIP没有事件,您可以处理文本框的
GotFocus
LostFocus
事件。(通过反复试验获得
180
值)


ScrollViewer
不考虑SIP,因此其滚动体验与SIP不可见时相同(这就是无法到达顶部的原因)。一种解决方法是在显示SIP时,在
LongListSelector
的顶部添加边距(如果文本框位于顶部,则在底部添加边距)

由于SIP没有事件,您可以处理文本框的
GotFocus
LostFocus
事件。(通过反复试验获得
180
值)


你可能会发现以下有用的东西:你可能会发现以下有用的东西:有趣的是,我确实尝试了160页边距,没有产生明显的差异,只是尝试了350页边距,现在它产生了差异。谢谢你提醒我继续尝试:)有趣的是,我确实尝试了160页边距,没有明显的区别,只是尝试了350页边距,现在它产生了不同。谢谢你提醒我继续尝试:)
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <Grid Grid.Row="0">
            <phone:LongListSelector x:Name="TheList">
                <phone:LongListSelector.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding}"
                                   Style="{StaticResource PhoneTextLargeStyle}"/>
                    </DataTemplate>
                </phone:LongListSelector.ItemTemplate>
            </phone:LongListSelector>
        </Grid>

        <Grid Grid.Row="1">
            <TextBox />
        </Grid>
    </Grid>
    public MainPage()
    {
        InitializeComponent();

        Loaded += (sender, args) =>
        {
            var list = new List<string>();
            for (var i = 0; i < 30; i++)
            {
                list.Add("This is string number " + i);
            }

            TheList.ItemsSource = list;
        };
    }
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
   TheList.Margin = new Thickness(0,180,0,0);
}

private void TextBox_LostFocus(object sender, RoutedEventArgs e)
{
   TheList.Margin = new Thickness();
}