UWP Xaml如何实现右键菜单
1、首先,以一个ListView为例,现在希望在其列表项上添加右键菜单,处理列表项对应的DataContext数据内容。这个ListView使用DataTemplate模板作为列表项模板。

2、在列表项的模板的内容,是一个最外层的Border控件(Border内部就不用考虑了犬匮渝扮)。由于这个Border不支持Fl烤恤鹇灭yout属性,所以添加FlyoutBase.AttachedFlyout附加属性。在附加Flyout内,添加MenuFlyout制作菜单。

3、Flyout制作好以后,给Border控件的RightTapped这个Event添加处理函数(即右键点击)。

4、在右键点击的处理函数中,使用FlyoutBase.ShowAttachedFlyout方法显示附加Flyout,注意传入的是sender(右键点击的列表项)。

5、接下来,我们制作每个菜单项单击的处理。如图,给“重命名”菜单项的Tapped添加处理函数。

6、在处理函数中,首先将sender转换为MenuFlyoutItem,然后直接获取DataContext(DataContext是传递的,就是Flyout所在列表项对应的数据项)。接着就可以处理DataContext了。

7、如果是按钮Button控件,本身就有Flyout属性,直接添加Button.Flyout即可。
