wpf 代码获取contextmenu_[C#] 转:在WPF里面获取右键弹出菜单(ContextMenu)的鼠标点击源(Owner)控件...

WPF的ContextMenu没有类似WinForm里面ContextMenu.SourceControl的概念,但是你可以通过ContextMenuService的GetPlacementTarget方法来获取类似的效果。

很多时候,我们会希望在WPF的资源文件里面定义一个通用的右键弹出菜单,然后将这个菜单通过定义在各个控件的ContextMenu属性来设置用户右击控件时弹出菜单。然而因为WPF的一些设计不足,你不能在右键菜单的点击事件处理函数中获知右键菜单弹出时,鼠标的焦点是在哪个控件上?

例如下面的代码:

XAML代码:

<Window.Resources>

<ContextMenux:Key="sampleContextMenu">

<MenuItemHeader="MenuItem1"Click="WhoBringMeOut"/>

ContextMenu>

...

Window.Resources>

<TreeView>

<TreeViewItemHeader="TreeViewItem1"ContextMenu="{StaticResource

sampleContextMenu}"/>

<TreeViewItemHeader="TreeViewItem2"ContextMenu="{StaticResource

sampleContextMenu}"/>

<TreeViewItemHeader="TreeViewItem3"/>

TreeView>

<DockPanelContextMenu="{StaticResource

sampleContextMenu}">

<ImageSource="img1.ico"/>

<TextBlockText="QuicklyAccess"/>

DockPanel>

C#代码:

public void WhoBringMeOut(object sender,

RoutedEventArgs e)

{

//

sender的值是被点击的MenuItem,而不是触发右键菜单

//弹出的控件,例如TreeViewItem,或者是DockPanel

}

这种情况下你可以通过ContextMenuService的GetPlacementTarget方法来获取类似的效果。

然而,看起来WPF在MenuItem.Click事件处理上面有一点bug,就是你不能通过(sender as

MenuItem).ContextMenu

获取到点击的右键菜单,只好求助于LogicalTreeHelper.GetParent方法了,

使用下面的方法获取到ContextMenu的Owner: ContextMenuService.GetPlacementTarget(LogicalTreeHelper.GetParent(sender

as MenuItem))

也就是说上面的C#代码改成下面的样子就可以了:

public void WhoBringMeOut(object sender,

RoutedEventArgs e)

{

ContextMenuService.GetPlacementTarget(

LogicalTreeHelper.GetParent(sender as MenuItem));

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021辽宁高考艺考成绩查询系统入口,2019年辽宁省艺考统考成绩查询官方入口

2019年辽宁省普通高等学校招生美术类、音乐舞蹈类专业统考成绩已经公布。考生可以通过以下方式查询美术类、音乐舞蹈类专业统考成绩&#xff1a;一、美术类专业统考合格分数线美术类本科专业统考合格分数线为185分&#xff0c;且3门科目中至少有2门各不低于60分;专科专业统考合…

python出现traceback什么意思_python-异常处理 traceback获取详细异常

直接来几个简单的栗子:try:100/0except Exception as err:print(err)输出结果:division by zero只知道是报了这个错&#xff0c;却不知道在哪个文件哪个函数哪一行报的错。使用 traceback 模块importtracebacktry:100/0exceptException as e:traceback.print_exc()输出结果:Tra…

2020辅警考试计算机知识题,2019年辅警考试公共基础知识题库:计算机知识习题(二)...

中公招警考试网为考生提供2019年辅警考试计算机基础知识题目及答案解析&#xff0c;帮助考生顺利备考辅警考试。辅警考试备考周期短、复习范围大&#xff0c;中公小编建议考生充分利用各个辅警考试题进行练习。1. 如果要查找Glossary.txt, Glossary.doc 和Glossy.doc 三个文件&…

用python程序编写二元多项式_Python多项式回归的实现方法

多项式回归是一种线性回归形式&#xff0c;其中自变量x和因变量y之间的关系被建模为n次多项式。多项式回归拟合x的值与y的相应条件均值之间的非线性关系&#xff0c;表示为E(y | x)为什么多项式回归&#xff1a;研究人员假设的某些关系是曲线的。显然&#xff0c;这种类型的案例…

微型计算机硬盘为什么要分区,为什么懂电脑的人,都说硬盘不需要分区?看完你就知道了...

你的电脑有多少个分区呢&#xff1f;当你拿到一台新电脑的时候&#xff0c;一般只能看到一个系统分区。这时候就会开始进行系统分区&#xff0c;将硬盘分为C、D、E等等盘符&#xff0c;用途也各不相同&#xff0c;系统盘&#xff0c;资料盘&#xff0c;娱乐盘等等。似乎所有人都…

字符串固定长度 易语言_易语言字符串操作源码

易语言字符串操作源码系统结构:字符串_取长度,字符串_取中间,字符串_取左边,字符串_取右边,字符串_替换,到宽字符,到多字节,取文本数据地址,取字节集数据地址,MultiByteToWideChar,WideCharToMultiByte,程序集1| || |------ _启动子程序| || |------ _临时子程序| || |程…

php imagecreatefromjpeg图片太大_PHP图像处理技术及应用

基本图像处理技术1体理解&#xff1a;1&#xff0c;创建(得到)一个图像资源(resource)——它相当于一个“画板”(画布)2&#xff0c;在该画板上进行“绘制图线”&#xff1b;3&#xff0c;将该画布输出到网页上显示出来&#xff0c;或保存为图片文件。图像处理技术&#xff0c;…

html中所有的标签,HTML中的所有标签及其做用!

用户提问,表示该文件为HTML文件 ,包含文件的标题,使用的脚本,样式定义等 ---,包含文件的标题,标题出现在浏览器标题栏中 ,的结束标志 ,放置浏览器中显示信息的所有标志和属性,其中内容在浏览器中显示. ,的结束标志 ,的结束标志 其它主要标签,以下所有标志...推荐答案,表示该文件…

linux中如何复制文件并重命名_linux 下怎么复制一个文件到另外一个目录并且重命名...

在home目录下有wwwroot目录,wwwroot下有sinozzz目录,即/home/wwwroot/sinozzz 一、目录创建 在/home/wwwroot目录下新建一个sinozzz123的文件夹 mkdir /home/wwwroot/sinozzz123 二、目录复制 1。 把/home/wwwroot/sinozzz里面的文件和文件夹等复制到home/wwwroot/sinozzz123…

年金系数用计算机怎么算,年金系数是什么?怎么计算?

【导读】年金是相等时间间隔收到或支付相同金额的款项&#xff0c;如年末收到养老金1万元即为年金。年金现值是按市场利率把发生期收到的各期年金利息折成现值汇总&#xff0c;现值系数是按利率每期收付一元钱折成现在的价值。年金系数是什么&#xff1f;首先说什么是年金&…

mf模型 svd++_序列推荐模型(一): FPMC

Factorizing Personalized Markov Chains for Next-Basket Recommendation摘要和介绍这篇文章发表于 WWW2010&#xff0c;当时主流的推荐方法是MF和MCMF(Matrix Factorization) : 用于建模用户与物品的偏好。给定已知用户和物品的交互&#xff0c;来预测矩阵中其他未知位置的用…

科学计算机怎么算四分位数,83939数理分析网

【www.shanpow.com--节日作文】第一篇83939数理分析网:手机号码数理分析手机号码数理分析手机是大家日常生活中最常用的东西&#xff0c;手机号码也暗喻数理卦象玄机&#xff0c;有些人甚至比姓名更看重&#xff0c;毕竟换手机号码比改名字简单。互联网上有很多可以测试的网站&…

使用python读取iphone文件_如何在连接的iPhone上用Python从windows7访问照片?

当我将iPhone连接到windows7系统时&#xff0c;Windows资源管理器会打开DCIM内容的虚拟文件夹。我可以通过Pywin32(218)访问shell库接口&#xff0c;如下所述&#xff1a;Can I use library abstractions in python?给定在Windows资源管理器中工作的面向用户的编辑路径(SIGDN_…

离人愁有用计算机怎么写歌词,离人愁歌词是什么意思 今两股痒痒什么意思

最近《离人愁》这首富含古风的歌曲可是大火&#xff0c;既然是古风&#xff0c;里边的歌词也是让大多网友不理解其中表达什么意思&#xff0c;进而不能好好体会作者写这首歌的意图&#xff0c;其实每个人对于这首歌曲还是有很多自己的理解的&#xff0c;现在小编就来介绍这首歌…

手机耗电统计app_华为手机有哪些功能关掉比较好?

阅读本文前&#xff0c;请您先点击上面的蓝色字体“野趣说”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都有分享&#xff0c;完全是免费订阅&#xff0c;请放心关注&#xff01;现在的手机使用一年半左右就会出现卡顿的情况&#xff0c;这也…

北京航空航天大学计算机科学与工程系,北航郑征主页 北京航空航天大学教师个人主页系统...

[1].教育部学位与研究生教育发展中心评审专家[2].IEEE Transactions on Dependable and Secure Computing客座编辑[3].国际SCI期刊Knolwedge-based Systems副主编[4].国际会议ISSRE2020程序委员会共同主席(International Symposium on Software Reliability Engineering-CCF B)…

3种团队分组适应项目_团队类型

展开全部根据团队存在的目的和拥有自主权的大小可将团队分成四种类型&#xff1a;问题解决型团队、自我32313133353236313431303231363533e59b9ee7ad9431333431363635管理型团队、多功能型团队、虚拟型团队。1、问题解决型团队问题解决型团队是指组织成员就如何改进工作程序、方…

制作html弹窗,js制作一个简单的div弹窗:

/p>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">弹出层.black_overlay{display: none;position: absolute;top: 0%;left: 0%;width: 100%;height: 100%;background-color: black;z-index:1001;-moz-opacity: 0.8;opacity:.80;filter: alpha(op…

太原冶金技师学院计算机系,山西冶金技师学院2021年招生简章

山西冶金技师学院2021年招生简章随着考试的落幕&#xff0c;很多学生都比较关注一些学校的招生信息&#xff0c;其中山西冶金技师学院就受到很多学生关注&#xff0c;学校的专业专业设置也比较多&#xff0c;那么在今年&#xff0c;该学校的招生简章有什么要求呢?学校的专业招…

netty获取玩家chanel_Netty4.X 获取客户端IP

最近使用netty-4.0.23.Final 版本编写服务端代码&#xff0c;有个获取客户端代码的小需求&#xff0c;以前使用servlet开发时很机械的就:String ipAddr"0.0.0.0";if (reqest.getHeader("X-Forwarded-For") null) {ipAddr reqest.getRemoteAddr();}else{i…