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

时间:2011-02-08 01:13:11

标签: windows-phone-7 silverlight-toolkit

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

当我单击ListPicker时,适当地进入全屏“完整模式”。我点击一个选项,完全模式适当关闭。然后在ListPicker的父页面上注册另一个点击,直接在我单击完整模式窗口的位置下进行解决方案。我可以激活索引视图或LongListSelector的元素。

看起来ListPicker未能将tap事件标记为已处理,并且正在冒泡。有没有人注意到这种行为?有什么工作吗?

1 个答案:

答案 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;
    }