UWP Xaml如何实现右键菜单?

 时间:2026-02-12 15:59:40

1、首先,以一个ListView为例,现在希望在其列表项上添加右键菜单,处理列表项对应的DataContext数据内容。

这个ListView使用DataTemplate模板作为列表项模板。

UWP Xaml如何实现右键菜单?

2、在列表项的模板的内容,是一个最外层的Border控件(Border内部就不用考虑了)。

由于这个Border不支持Flyout属性,所以添加FlyoutBase.AttachedFlyout附加属性。在附加Flyout内,添加MenuFlyout制作菜单。

UWP Xaml如何实现右键菜单?

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

UWP Xaml如何实现右键菜单?

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

UWP Xaml如何实现右键菜单?

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

UWP Xaml如何实现右键菜单?

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

接着就可以处理DataContext了。

UWP Xaml如何实现右键菜单?

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

UWP Xaml如何实现右键菜单?

  • UWP Xaml如何编写层叠样式?
  • UWP Xaml如何用ContentDialog自制输入框?
  • UWP Xaml 颜色Color如何数据绑定
  • UWP如何使用图标控件SymbolIcon?
  • UWP 如何让控件保持宽高比?
  • 热门搜索
    小学生读书手抄报 三八妇女节的手抄报 植树造林手抄报 抗日手抄报 中学生手抄报 关于阅读的手抄报 书法手抄报 热爱祖国的手抄报 法制安全手抄报 防灾减灾手抄报