C# 系统菜单弹出框方向
右键菜单,tootip等弹出时,弹出的位置经常在左侧,使用体验不好。
弹出方向有左对齐和右对齐 SystemParameters.MenuDropAlignment
当右对齐时,值为false
可以在控制面板中查看当前的设置:

如何在软件中强制向右弹出显示?
可以设置SystemParameters.MenuDropAlignment值,因为没有公开属性的set方法,只能用反射去修改了。
1 public static class MenuDropAlignmentHelper
2 {
3 private static FieldInfo _menuDropAlignmentField;
4 public static void DisableSystemMenuAlignment()
5 {
6 _menuDropAlignmentField = typeof(SystemParameters).GetField("_menuDropAlignment", BindingFlags.NonPublic | BindingFlags.Static);
7
8 EnsureStandardPopupAlignment();
9 SystemParameters.StaticPropertyChanged -= SystemParameters_StaticPropertyChanged;
10 SystemParameters.StaticPropertyChanged += SystemParameters_StaticPropertyChanged;
11 }
12
13 private static void SystemParameters_StaticPropertyChanged(object sender, PropertyChangedEventArgs e)
14 {
15 EnsureStandardPopupAlignment();
16 }
17
18 private static void EnsureStandardPopupAlignment()
19 {
20 if (SystemParameters.MenuDropAlignment)
21 {
22 _menuDropAlignmentField?.SetValue(null, false);
23 }
24 }
25 }
之后在相应的窗口下,调用此方法MenuDropAlignmentHelper.DisableSystemMenuAlignment即可。
参考文章:
C# 系统菜单弹出框方向的更多相关文章
- 清除ios系统alert弹出框的域名
清除ios系统alert弹出框的域名 <script> window.alert = function(name) { var iframe = document.createElemen ...
- python + selenium webdriver 通过python来模拟鼠标、键盘操作,来解决SWFFileUpload调用系统底层弹出框无法定位问题
Webdriver是基于浏览器操作的,当页面上传文件使用的是flash的控件SWFFileUpload调用的时候,调用的是系统底层的文件选择弹出框 这种情况,Webdriver暂时是不支持除页面外的其 ...
- ReactNative: 使用弹出框组件ActionSheetIOS组件
一.简介 在上一篇文章中,详细介绍了对话框组件,除此之外,React-Native系统还给开发者提供了一个弹框框组件ActionSheetIOS组件,它的弹出方式与对框框不同,它是从底部弹出,与iOS ...
- bootstrap的弹出框
data-toggle="popover";//以弹出框事件触发 data-content="弹出框中内容"; data-placement="弹出框 ...
- 通过jquery获得某个元素的位置, 透明div, 弹出框, 然后在旁边显示toggle子级联菜单-hover的bug解决
jquery的"筛选选择器", 都是用冒号开头的, 即, 冒号选择器就是 筛选选择器.如: :first, :last, :eq(index), :first-child,...等 ...
- bootstrap 响应式导航条模板(含下拉菜单,弹出框)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 微信公众号弹出框在IOS最新系统中点击键盘上的“完成”导致事件无法触发问题
微信公众号弹出框在IOS最新系统中点击键盘上的"完成"导致事件无法触发问题 问题描述 微信公众号中有项功能是弹框模态框,输入信息后保存操作.但是在IOS系统中发现,当输入内容后,点 ...
- 系统默认的alert弹出框总会带有域名
最近在开发Hybrid APP时发现用系统默认的alert弹出框总会带有域名,用户体验就比较不好了.想了一种办法来解决就是覆盖alert的方法. (function(){ window.a ...
- js 常见弹出框学习
模拟系统的弹出框 系统自带的弹出框 总结 链接 http://blog.csdn.net/anhuidelinger/article/details/17024491 参考这个网站学习模态框的动态弹 ...
随机推荐
- Linux防火墙相关命令
查看以开放端口 firewall-cmd --list-ports 开启端口如6379 firewall-cmd --zone=public --add-port=6379/tcp --permane ...
- git merge的原理
当我我们拉去代码合并到master的另一个分支上面去的时候 只是对比当前分支commit的修改与增加的代码,其他代码以master为主.
- webservice学习随笔(一):简单的webservice实例
一.webService概念简单介绍: 简单来说,webservice就是远程调用技术,也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的 ...
- 使用php将字典格式的字符串转为array
例: 原字符串为 $a = '{"errcode":0,"errmsg":"ok","msgid":1472671765 ...
- FCARM - Output Name not specified, please check 'Options for Target - Utilit问题
FCARM - Output Name not specified, please check 'Options for Target - Utilit问题 按照书上说明按步操作,但是书上是按照kei ...
- 10.4 提高叠加处理速度(2) (harib07d)
ps:能力有限,若有错误及纰漏欢迎指正.交流 sheet_refreshsub void sheet_refreshsub(struct SHTCTL *ctl, int vx0, int vy0, ...
- day07-SpringBoot接收参数相关注解
SpringBoot接收参数相关注解 1.基本介绍 SpringBoot接收客户端提交数据/参数会使用到相关注解 详解@PathVariable.@RequestHeader.@ModelAttrib ...
- .NET应用系统的国际化-多语言翻译服务
上篇文章我们介绍了 .NET应用系统的国际化-基于Roslyn抽取词条.更新代码 系统国际化改造整体设计思路如下: 提供一个工具,识别前后端代码中的中文,形成多语言词条,按语言.界面.模块统一管理多有 ...
- C语言 ini 文件读写【Iniparser库】
一.概述 iniparser是针对INI文件的解析器.ini文件则是一些系统或者软件的配置文件.iniparser库的API可以对ini文件(配置文件)进行解析.设置.删除等操作. 常见的 ini 读 ...
- 一文带你搞懂java中的变量的定义是什么意思
前言 在之前的文章中,壹哥给大家讲解了Java的第一个案例HelloWorld,并详细给大家介绍了Java的标识符,而且现在我们也已经知道该使用什么样的工具进行Java开发.那么接下来,壹哥会集中精力 ...