【问题标题】:Resizing ToolStripButtons to fit complete BackGround image调整 ToolStripButtons 的大小以适合完整的背景图像
【发布时间】:2010-03-22 21:11:21
【问题描述】:

我的目标是在 toolStripButton 和 toolStripDropDownButton 中完全适合图像。

如果按钮中的图像设置了图像属性,我不能完全适应按钮中的图像。因为边距、边框或按钮的某些东西。(我不知道确切)。

所以我尝试使用 BackgroudImage 属性在按钮中设置图像。调整一些属性(如 AutoSize、Size 等...)后,我可以将图像放入按钮中。

但在这种情况下,我看不到背景图片。当鼠标光标位于按钮上时,它会消失。

我该如何解决这个问题??

图像属性。我无法消除图像之间的差距。

BackgroundImage 属性。当鼠标光标在图像上时,我看不到图像。

【问题讨论】:

    标签: .net image winforms toolstripbutton


    【解决方案1】:

    好吧,您知道为什么它会在 Image 属性周围留下一个空格。您可以通过分配 ToolStrip.Renderer 属性来自定义按钮的呈现。这可能看起来像这样:

    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            toolStrip1.Renderer = new MyRenderer();
        }
        private class MyRenderer : ToolStripProfessionalRenderer {
            protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e) {
                if (e.Item.BackgroundImage == null) base.OnRenderButtonBackground(e);
                else {
                    Rectangle bounds = new Rectangle(Point.Empty, e.Item.Size);
                    e.Graphics.DrawImage(e.Item.BackgroundImage, bounds);
                    if (e.Item.Pressed) {
                        // Something...
                    }
                    else if (e.Item.Selected) {
                        // Something...
                    }
                    using (Pen pen = new Pen(Color.Black)) {
                        e.Graphics.DrawRectangle(pen, bounds.X, bounds.Y, bounds.Width - 1, bounds.Height - 1);
                    }
                }
            }
        }
    
    }
    

    您必须填写 //Something... 行并进行某种绘图,使用户可以清楚地看到按钮被按下或选中。也许用粗笔画一个矩形,这取决于你。

    【讨论】:

    • 哇。惊人的。这是新世界。 :) 多谢。这个回应正是我正在寻找的。再次感谢:)
    【解决方案2】:

    当您在 ToolStripButton 的背景中显示图像时,将鼠标移到其上会导致其消失,这是设计使然。 ToolStripButton 的 MouseOver 效果绘制在任何背景图像之上,否则将永远看不到效果。

    当您设置 ToolStripButton 的 Image 属性时,请确保将 ImageScaling 设置为“None”,以保证 AutoSizing 功能会放大 ToolStripButton 以适应图像大小。

    “图像之间的间隙”被设计到 ToolStrip 对象中,以便用户知道一个按钮在哪里结束,另一个按钮从哪里开始。

    【讨论】:

    • 嗯.. 在阅读您的回复之前,我不知道原因。我会学习更多。谢谢炖肉。 :)
    猜你喜欢
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 2013-09-01
    • 2012-07-19
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    相关资源
    最近更新 更多