Windows phone 7 在Window Phone 7 ListPicker控件中额外点击

Windows phone 7 在Window Phone 7 ListPicker控件中额外点击,windows-phone-7,silverlight-toolkit,Windows Phone 7,Silverlight Toolkit,我正在Wp7应用程序中使用ListPicker。包含listPicker控件的页面还包含LongListSelector。LongListSelector的每个元素都有一个单击手势处理程序 当我在中单击ListPicker时,它将进入全屏模式。我点击一个选择,完整模式相应关闭。然后,在ListPicker的父页面上注册了另一个点击,就在我单击完整模式窗口生成解决方案的位置的正下方。我可以激活索引视图或LongListSelector的元素 ListPicker似乎未能将tap事件标记为已处理,并

我正在Wp7应用程序中使用ListPicker。包含listPicker控件的页面还包含LongListSelector。LongListSelector的每个元素都有一个单击手势处理程序

当我在中单击ListPicker时,它将进入全屏模式。我点击一个选择,完整模式相应关闭。然后,在ListPicker的父页面上注册了另一个点击,就在我单击完整模式窗口生成解决方案的位置的正下方。我可以激活索引视图或LongListSelector的元素


ListPicker似乎未能将tap事件标记为已处理,并且正在冒泡。还有其他人注意到这种行为吗?有工作区吗?

这是一种在我遇到同样问题时对我有用的工作:

您需要添加一个带有句柄的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>

嗨,John,我对ContextMenu也有类似的问题,点击它会将点击传播到下面的元素,这些元素注册了点击手势。我已经在这里说明了解决方法,但我不确定如何将其应用于ListPicker,因为我找不到打开和关闭的事件。您是否在LongListSelector项的单击手势处理程序中设置了e.Handled=true?您使用的工具包版本是什么?你能提供一个重新创建这个的示例吗。我试图重新创建您的场景,但未能创建您上面描述的内容。我尝试了e.handled=true,但这并没有解决问题。我使用的是2010年秋季版本的工具包。我没有快速的示例。最后,我使用一个导航到子页面的按钮来构建自己的页面,以获得所需的行为。从下面的答案来看,似乎至少有一个人在2011年2月的版本中复制了这一点。
    private void TextBlockLoaded(object sender, RoutedEventArgs e)
    {
        LayoutRoot.IsHitTestVisible = false;
    }

    private void TextBlockUnloaded(object sender, RoutedEventArgs e)
    {
        LayoutRoot.IsHitTestVisible = true;
    }