GridViewItem で PointerPressed/PointerReleased イベントを使用して、RightTapped または ManipulationCompleted から得られるのと同じ効果を得ることができます。
<ListView
Margin="120,80,0,0"
SelectionMode="Multiple">
<ListView.ItemContainerStyle>
<Style
TargetType="ListViewItem">
<Setter
Property="Width"
Value="100" />
<Setter
Property="Height"
Value="100" />
</Style>
</ListView.ItemContainerStyle>
<ListViewItem
RightTapped="ListViewItem_RightTapped_1"
PointerPressed="ListViewItem_PointerPressed_1"
PointerReleased="ListViewItem_PointerReleased_1"
ManipulationStarted="ListViewItem_ManipulationStarted_1">
<Rectangle
Height="80"
Width="80"
Fill="Red" />
</ListViewItem>
</ListView>
.
private void ListViewItem_RightTapped_1(object sender, RightTappedRoutedEventArgs e)
{
Debug.WriteLine("Tap");
}
private void ListViewItem_PointerPressed_1(object sender, PointerEventArgs e)
{
Debug.WriteLine("Press");
}
private void ListViewItem_ManipulationStarted_1(object sender, ManipulationStartedRoutedEventArgs e)
{
Debug.WriteLine("Manipulating");
}
private void ListViewItem_PointerReleased_1(object sender, PointerEventArgs e)
{
Debug.WriteLine("Release");
}
}
出力:
プレスリリース プレスリリース
*編集
申し訳ありませんが、タッチとマウスではこれらのイベントの動作が異なることをどうにか見逃していたに違いありません。あなたが得た答えは、あなたが得られる最高のものかもしれないと思います。それ以外の場合は、独自のバージョンの ListView を実装する必要があります。将来のリリースでより良い解決策が得られることを期待して彼らに圧力をかけることもできますが、私はそこに多くを望んでいません. 私の記憶では、ContextMenus はあまりメトロではなく、右クリック メニューよりも優れた UX ソリューションがあります。コマンドは、AppBar または項目を選択した後に開く詳細ページに表示できます。これは、サポートされるように設計されていない何かの回避策をハックしようとするよりもうまくいく可能性があります.