我在Wp7应用程序中使用ListPicker。包含listPicker控件的页面还包含LongListSelector。 LongListSelector的每个元素都有一个Click Gesture处理程序。
当我单击ListPicker时,适当地进入全屏“完整模式”。我点击一个选项,完全模式适当关闭。然后在ListPicker的父页面上注册另一个点击,直接在我单击完整模式窗口的位置下进行解决方案。我可以激活索引视图或LongListSelector的元素。
看起来ListPicker未能将tap事件标记为已处理,并且正在冒泡。有没有人注意到这种行为?有什么工作吗?
答案 0 :(得分:0)
当我遇到同样的问题时,这是一种对我有用的工作:
您需要添加一个带有句柄的FullHeaderItemTemplate来加载和卸载事件。
<toolkit:ListPicker.FullModeItemTemplate>
<DataTemplate>
<Grid Margin="12,15,12,15">
<TextBlock Text="{Binding FullName}"
Loaded="TextBlockLoaded"
Unloaded="TextBlockUnloaded"
Style="{Binding PhoneTextExtraLargeStyle}" />
</Grid>
</DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>
对于这些事件,您需要具备以下条件:
private void TextBlockLoaded(object sender, RoutedEventArgs e)
{
LayoutRoot.IsHitTestVisible = false;
}
private void TextBlockUnloaded(object sender, RoutedEventArgs e)
{
LayoutRoot.IsHitTestVisible = true;
}