だから私はここで解決策に従いました。
別のユーザーがその回答への返信として言及したように、ContextMenu は実際には、「タップ」された場所ではなく、画面の上部に開きます。
なぜこれが起こっているのか、それを修正するための提案はありますか?
リソース XAML:
<DataTemplate x:Key="InventoryListDataTemplate">
<StackPanel Orientation="Vertical" Margin="0,0,0,17" Tap="OpenContextMenu">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu x:Name="WeaponContextMenu">
<toolkit:MenuItem Header="Equip" />
<toolkit:MenuItem Header="Discard" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</StackPanel>
</DataTemplate>
コンテンツ XAML:
<Grid>
<ListBox ItemTemplate="{StaticResource InventoryListDataTemplate}" Name="InventoryAllListBox" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</Grid>
コード:
private void OpenContextMenu(object sender, EventArgs e)
{
ContextMenu contextMenu = ContextMenuService.GetContextMenu(sender as StackPanel);
if (contextMenu.Parent == null)
{
contextMenu.IsOpen = true;
}
}