【问题标题】:Display an image in one MenuItem without resizing the other MenuItems in a ContextMenuStrip在一个 MenuItem 中显示图像,而不调整 ContextMenuStrip 中其他 MenuItem 的大小
【发布时间】:2010-06-04 04:19:54
【问题描述】:

我有一个 ContextMenuStrip,上面有两个 MenuItem。我想在其中一个项目上显示图像,但是当我这样做时,另一个项目会调整为 MenuStrip 的图像缩放大小,即使它本身没有图像。有没有办法解决这个问题,只调整具有图像的项目的大小而不影响其他项目?

更新:首先我尝试将我不想调整大小的 MenuItem 的 ImageScaling 属性设置为 None。这没有任何效果,也没有使用 AutoSize 或 SizeMode 属性。

通过使用 BackgroundImage 属性而不是 MenuItem 的 Image 属性并手动设置要显示的 MenuItem 的大小,我取得了一些成功。但我无法让文本出现在 MenuItem 的底部,即使我已将 TextAlign 属性设置为 BottomCenter。另外,使用 BackgroundImage 属性似乎是一种变通方法,而不是一个好的解决方案。

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    为具有图像的 ToolStripMenuItemImageScaling 设置为 SizeToFit(默认值)。

    【讨论】:

    • 问题是我希望显示的图像尺寸不同(100x100),所以我将 ImageScalingSize 属性设置为 100,100,并且菜单条上的其他项目调整为这些尺寸,即使它们有没有图像集。我想在调整一个菜单项的大小时保持它们的正常大小。
    • 我使用 Reflector 来查看 ToolStrip 是如何进行布局的。似乎它使用了所有 ToolStrip 项目中最大的尺寸,所以看起来你运气不好。
    猜你喜欢
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 2017-07-11
    相关资源
    最近更新 更多