joysticksToolStripMenuItem

joysticksToolStripMenuItem

我有一个下拉菜单,它在每次打开时都会动态填充,这是执行此操作的逻辑:

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机器上对表单的编辑)而解决的。

09-27 20:53