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 参考这个网站学习模态框的动态弹 ...
随机推荐
- ELK集群基础环境初始化
集群基础环境初始化 1.准备虚拟机 192.168.1.7 192.168.1.6192.168.1.183 2.切换为国内centos源 3.修改sshd服务优化 [root@elk01 ~]# s ...
- js指南
1.for /in: 与for/of相比,可迭代对象不同,in后面可以是任意对象.数组.字符串.集合和映射可迭代. object.keys() object.values() object.e ...
- Windows下fmt库的链接与使用
下载源码. 使用mingw编译源码.注意设置cmake文件的产生路径.pkgconfig文件的产生路径(windows下用不到产生的pc文件).库的安装路径. make -j8 install. 新建 ...
- asp.net core项目部署IIS
1.下载对应版本的webhost 我的是2.2 下载地址:https://download.visualstudio.microsoft.com/download/pr/ba001109-03c6-4 ...
- Codeforces Round 857 (Div. 2) A-D
Codeforces Round 857 (Div. 2) A. Likes 求每回合最大的数列:先全使用正数,每个正数对ans++,再全使用负数,每个负数对ans-- 求每回合最小的数列:方法1(模 ...
- WinUI(WASDK)使用ChatGPT和摄像头手势识别结合TTS让机器人更智能
前言 之前写过一篇基于ML.NET的手部关键点分类的博客,可以根据图片进行手部的提取分类,于是我就将手势分类和摄像头数据结合,集成到了我开发的电子脑壳软件里. 电子脑壳是一个为稚晖君开源的桌面机器人E ...
- 利用Intent在两个页面之间进行传值操作的具体实现
不知道为什么,我本来使用的呼声最高的Bundle发送,但是我使用它会显示不出来,由于时间问题,我今天就先不找了,先放一下,先以完成任务为己任哈! 我们都清楚,我们基本上都是用的Intent实现的页面之 ...
- Gym 101490K Safe Racing (dp转换, 超超超级详细,包你看懂)
题意:给你一个长为L的圆形跑道,让你放置警示牌,相邻两个警示牌相隔距离不能超过S,让你求有多少种方案数放置.数据L,S都是1e6. 来个例子:L = 13, S = 5.一个圈表示长度为1. 思路:因 ...
- Mybatisplus----DML编程控制
乐观锁 (1)业务并发现象带来的问题:秒杀 执行: 1.在类对象中添加version属性,在数据库表中添加version字段(默认值为1) package com.itheima.domain; im ...
- wireshark抓包教程详解
https://blog.csdn.net/lixinkuan328/article/details/122985439 Wireshark 的抓包和分析,看这篇就够了!:https://blog.c ...