1

だから私はここで解決策に従いまし

別のユーザーがその回答への返信として言及したように、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;
    }
}
4

0 に答える 0