【发布时间】:2011-05-25 04:25:51
【问题描述】:
在 MDI 应用程序中,当 MDI 子窗体最大化时,窗体的图标用作上下文菜单图标,显示在父窗体的 MenuStrip 的左侧。当我将在 MDI 应用程序中使用的表单的图标设置为大于 16x16(我使用的是 32x32)时,该图标未按比例绘制,并且菜单会调整大小以适应。请注意,如果 ICO 文件还包含 16x16 版本的图标,它可以正常工作。
以下创建一个显示行为的基本应用程序:
- 创建新的解决方案和 WinForms 项目
- 将 Form1 的 IsMdiContainer 更改为
true - 在 Form1 中添加
MenuStrip - 创建一个新表单,命名为
MdiChildForm - 将
MdiChildForm的图标设置为32x32 ICO 文件here's one I prepared earlier -
在
Form1中添加一个菜单项,双击它创建Click事件处理程序并添加以下内容:var child = new MdiChildForm(); child.MdiParent = this; child.Show(); child.WindowState = FormWindowState.Maximized; 编译运行,点击菜单项
请注意,当您再次单击菜单项时,图标会变为默认图标,这在 this question 中进行了描述,而不是此处的问题。
我很确定这会被描述为“设计使然”,但这仍然很烦人。有没有办法强制上下文菜单图标按比例缩小,有点像调整源图标的大小?我可能也会这样做,但我追求的是某种代码内包罗万象。
【问题讨论】:
标签: c# .net winforms icons mdi