Windows phone 8 打开SIP时查看WP8上LongListSelector中的顶部项目
我有一个应用程序,它使用LongListSelector来显示项目列表,在页面底部有一个文本框。轻触文本框时,SIP会自动显示。此时,我无法滚动到LLS的顶部 示例代码: XAML: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
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();
}