sna*_*arf 4 menustrip ownerdrawn winforms
我是自定义绘制一个菜单项MenuStrip.我遇到的问题是菜单项坚持根据文本调整自身大小,这不是我想要的(没有文本).我可以设置AutoSize为false并明确指定大小,但是包含的menu(ToolStripDropDown)仍然根据文本调整自身大小,这会导致它太小而无法包含整个菜单项.
有没有直接的方法来设置菜单项的大小?
小智 6
它可以通过添加一个空图像来实现toolStripItem.现在改变图像的大小,以给你想要的大小ToolStripItem.我在我的项目中完成了以下操作:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
Bitmap emptyImage = new Bitmap(48, 48);
ToolStripMenuItem m_Item = new ToolStripMenuItem(System.Convert.ToString("All Programs",emptyImage);
m_Item.ImageAlign = ContentAlignment.MiddleLeft;
m_Item.ImageScaling = ToolStripItemImageScaling.None;
m_Item.Name = btnId.ToString();
MenuStrip menu = new MenuStrip();
menu.Items.Add(m_Item);
}
}
Run Code Online (Sandbox Code Playgroud)
CodeProject 上的一篇文章中的评论解释了我的问题的性质:
虽然您可以处理 ToolStripMenuItem 的 Paint 事件,但 ToolStripMenuItem 并不旨在由“所有者绘制”。如果要处理特定工具条项的绘制,建议的方法是创建您自己的 ToolStripItem 派生类型。有关示例,请参阅ToolStripItem 类[^]。
| 归档时间: |
|
| 查看次数: |
9930 次 |
| 最近记录: |