2011-02-08 6 views
0

私はWp7アプリでListPickerを使用しています。 listPickerコントロールを含むページには、LongListSelectorも含まれています。 LongListSelectorの各要素には、クリックジェスチャハンドラがあります。窓の余分なタップ7 ListPickerコントロール

ListPickerを適切にクリックすると、「フルモード」のフルスクリーンが表示されます。選択をクリックすると、フルモードが適切に閉じます。次に、別のタップがListPickerの親ページに登録され、その場所の直下にあるフルモードウィンドウをクリックしてソリューションを作成します。私は、インデックスビューまたはLongListSelectorの要素の両方をアクティブにすることができます。

ListPickerは、タップイベントを処理済みとしてマークすることができず、バブリングアップしているようです。他の誰かがこの行動に気付いたのですか?任意の回避策?あなたは、イベントをロードおよびアンロードするためにハンドルをFullHeaderItemTemplateを追加する必要が

+0

こんにちはジョン、私はそれをクリックすると、下に横たわっている要素へのクリックを伝播するでしょう 'ContextMenu'と同様の問題を(持っていましたそれには「タップ」ジェスチャーが登録されています)。私はここで回避策を述べましたhttp://stackoverflow.com/questions/4697107/wp7-cancelling-contextmenu-click-event-propagation/4697652#4697652 私はあなたがそれをどのように 'ListPickerしかし、私は「開かれた」および「閉鎖された」イベントを見つけることができなかったからです。 – Praetorian

+0

'LongListSelector'アイテムの' Click'ジェスチャーハンドラで 'e.Handled = true'を設定していますか? –

+0

ツールキットのどのバージョンを使用していますか?これを再現したサンプルを提供してください。あなたのシナリオを再現しようとすると、あなたが上で説明していることを作成できませんでした。 –

答えて

0

これは、私は同じ問題を抱えていたとき、私のために働いているの周りの仕事の一種です。

<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; 
    } 
関連する問題