C# 右击事件后的菜单弹出按钮

C# 右击事件后的菜单弹出按钮,c#,uwp,C#,Uwp,我只想在gridViewItem上的右击事件之后制作一个菜单弹出按钮 我的xaml代码: <Page x:Class="HNT_listView2.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:HNT_listView2" xmlns:d=

我只想在gridViewItem上的右击事件之后制作一个菜单弹出按钮

我的xaml代码:

<Page
x:Class="HNT_listView2.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:HNT_listView2"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:data="using:HNT_listView2.Models"
mc:Ignorable="d">

<Grid Background= "Salmon" Margin="0,0,10,0"  >

    <GridView ItemsSource="{x:Bind MyContactList}" 
              ItemClick="GridViewItem_Click" Name="NameOf_ItemClick"
              IsItemClickEnabled="True"
              RightTapped="GridViewItem_RightTapped"
              IsRightTapEnabled="True">


        <GridView.ItemTemplate>
            <DataTemplate x:DataType="data:Contact">
                <StackPanel >
                    <FlyoutBase.AttachedFlyout>
                        <MenuFlyout Placement="Top">
                            <MenuFlyoutItem Text="Call"/>
                            <MenuFlyoutItem Text="Send a message"/>
                            <MenuFlyoutItem Text="Delete"/>
                        </MenuFlyout>
                    </FlyoutBase.AttachedFlyout>

                    <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">


                    <Image Width="100" Height="120" Source="{x:Bind Photo}" HorizontalAlignment="Center" Stretch="UniformToFill"/>
                    <StackPanel Orientation="Vertical">
                        <TextBlock FontSize="30" Text="{x:Bind Name}" HorizontalAlignment="Center"/>
                        <TextBlock FontSize="30" Text="{x:Bind Phone}" HorizontalAlignment="Center"/>
                    </StackPanel>
                </StackPanel>
                </StackPanel>
            </DataTemplate>
        </GridView.ItemTemplate>

    </GridView>


</Grid>
My Contact.cs(用于绑定):

公共类联系人
{
公共字符串名称{get;set;}
公共字符串Photo{get;set;}
公用字符串电话{get;set;}
}
公共类联系人管理器
{
公共静态列表GetContacts()
{
var contact1=新列表();
contact1.Add(新联系人{Name=“Nguyen Van A”,Phone=“0168111222”,Photo=“Assets/1.jpg”});
contact1.Add(新联系人{Name=“Tran Van B”,Phone=“0168333444”,Photo=“Assets/2.jpg”});
contact1.Add(新联系人{Name=“Le Van C”,Phone=“0166555666”,Photo=“Assets/3.jpg”});
返回联系人1;
}
}
然后输出打印为“无f值”


请帮忙,谢谢

发送方是GridViewItem的项,弹出式按钮位于GridViewItem'中

您的
FlyoutBase f=FlyoutBase.GetAttachedFlyout始终为空,因为GridViewItem的项没有弹出按钮

可以使用“定义代码”弹出型按钮

MenuFlyout myFlyout = new MenuFlyout();
MenuFlyoutItem callItem = new MenuFlyoutItem { Text = "Call" };
MenuFlyoutItem sendItem = new MenuFlyoutItem { Text = "Send a message" };
MenuFlyoutItem deleteItem = new MenuFlyoutItem { Text = "Delete" };

myFlyout.Items.Add(callItem );
myFlyout.Items.Add(sendItem );
myFlyout.Items.Add(deleteItem );
并在“单击位置”中设置弹出型按钮

myFlyout.ShowAt(sender as UIElement, e.GetPosition(sender as UIElement));

这是我项目的2部分中的1部分。非常感谢你的建议。如果你有时间,请检查我的第2部分(是的,它也有错误…)的链接?我不知道你说什么。哦,对不起,这里的第二部分:对不起,我该睡觉了。
MenuFlyout myFlyout = new MenuFlyout();
MenuFlyoutItem callItem = new MenuFlyoutItem { Text = "Call" };
MenuFlyoutItem sendItem = new MenuFlyoutItem { Text = "Send a message" };
MenuFlyoutItem deleteItem = new MenuFlyoutItem { Text = "Delete" };

myFlyout.Items.Add(callItem );
myFlyout.Items.Add(sendItem );
myFlyout.Items.Add(deleteItem );
myFlyout.ShowAt(sender as UIElement, e.GetPosition(sender as UIElement));