我有一个下拉菜单,它在每次打开时都会动态填充,这是执行此操作的逻辑:
private void joysticksToolStripMenuItem_DropDownOpening(object sender, EventArgs e)
{
_joysticks = _joystickWrapper.FindDevices(DeviceType.Joystick);
joysticksToolStripMenuItem.DropDownItems.Clear();
foreach (var di in _joysticks)
{
var item = new ToolStripMenuItem(di.ProductName);
item.Checked = di.InstanceGuid == _joystickWrapper.CurrentDeviceInfo.InstanceGuid;
joysticksToolStripMenuItem.DropDownItems.Add(item);
}
}
当我运行该应用程序时,这是我看到的:
支票位置错误,蓝色区域太宽。
有关在哪里解决此问题的任何想法?整个菜单都是
System.Windows.Forms
,整个应用程序中没有自定义可视代码。我在当前计算机(Windows 10 Build 9926)和开发服务器(Server 2012R2)上尝试了相同的结果。我还将其编译为NET Framework 4.5和4.5.1
编辑
对于那些感兴趣的人,这里是此项目的git repo:
https://github.com/adam8797/RovControl
最佳答案
我碰到了这个完全相同的问题,终于可以通过将MenuStrip的ImageScalingSize
属性设置为16,16
(它已经以某种方式设置为32,32,这可能是由于我在高DPI机器上对表单的编辑)而解决的。