1

リストボックスの特定の項目を長押しすると、コンテキストメニューが開くリストボックスがあります。しかし、リストボックスでは、リストボックスのタップまたはホールドイベントを使用していないため、コンテキストメニューがどのように表示されますか。

コンテキストメニューを開くイベントが発生していることを教えてください。xamlコードは次のとおりです。

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ListBox x:Name="scheduleListbox" ItemsSource="{Binding scheduleList}" Tap="scheduleListbox_Tap">
        <ListBox.ItemTemplate>
            <DataTemplate>
               <StackPanel Orientation="Vertical" Height="150" Width="460">
                    <toolkit:ContextMenuService.ContextMenu>
                        <toolkit:ContextMenu >
                            <toolkit:MenuItem Header="Add To Calendar" Click="AddToCalendar_Click" />
                            <toolkit:MenuItem Header="View Description" Click="ViewDescription_Click" />
                        </toolkit:ContextMenu>
                    </toolkit:ContextMenuService.ContextMenu>
                    <TextBlock x:Name="textBlock1" Text="{Binding ScheduleName}" Foreground="WhiteSmoke" FontSize="32"/>
                    <TextBlock x:Name="textBlock2" Text="{Binding ScheduleDate}" Foreground="Red" Margin="0,10,0,0"/>
                    <StackPanel Orientation="Horizontal" Height="70" Width="460">
                        <TextBlock x:Name="textBlock3" Text="{Binding StartTime}" Margin="0,5,0,0"/>
                        <TextBlock x:Name="textBlock4" Text="{Binding EndTime}" Margin="50,5,0,0"/>
                    </StackPanel>
                </StackPanel>

            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>

リストボックスのタップまたはホールドイベントを使用していないので、コンテキストメニューがどのように開いているか教えてください。ただし、リストボックスアイテムを長押しすると、コンテキストメニューが開きますか?

4

1 に答える 1

2

デフォルトでは、長押しするとコンテキスト メニューが開きますが、これは設計によるものです。他の方法で開きたい場合は、独自のロジックを作成する必要があります。その方法の例については、次のスレッドを参照してください。

ただし、ほとんどのユーザーは、リスト ボックスの項目をタップ アンド ホールドするとコンテキスト メニューが表示されることを期待しているため、一部のユーザーはこれに混乱する可能性があることに注意してください。

于 2013-03-08T07:09:29.103 に答える