用GIF替换ToolTip文本

时间:2017-11-28 23:47:09

标签: c# winforms

我正在重新设计一个较旧的应用程序,以使其更加用户友好。我想要做的一个补充是,当悬停在特定按钮上时,光标右下方会出现〜(200,200)演示GIF(类似于工具提示的功能)。

我研究了ToolTip类的修改,看起来过分了。上面提到的是理想的,虽然我正在考虑在悬停2秒左右后出现的静态imageBox。

有人能引导我朝着正确的方向前进吗?

1 个答案:

答案 0 :(得分:1)

看一下这篇文章,它会在工具提示中详细说明图像的步骤https://www.codeproject.com/Articles/42050/ToolTip-With-Image-C

特别是这种方法:

void CustomizedToolTip_Draw(object sender, DrawToolTipEventArgs e)
{
        e.Graphics.CompositingQuality = CompositingQuality.HighQuality;
        myToolTipRectangle.Size = e.Bounds.Size;
        e.Graphics.FillRectangle(myBorderBrush, myToolTipRectangle);
        myImageRectangle = Rectangle.Inflate(myToolTipRectangle, 
                -BORDER_THICKNESS, -BORDER_THICKNESS);
        e.Graphics.FillRectangle(myBackColorBrush, myImageRectangle);
        Control parent = e.AssociatedControl;
        Image toolTipImage = parent.Tag as Image; 
        if (toolTipImage != null)
        {
            myImageRectangle.Width = myInternalImageWidth;
            myTextRectangle = new Rectangle(myImageRectangle.Right, myImageRectangle.Top,
            (myToolTipRectangle.Width - myImageRectangle.Right - BORDER_THICKNESS), 
                        myImageRectangle.Height);
            myTextRectangle.Location = 
        new Point(myImageRectangle.Right, myImageRectangle.Top);
            e.Graphics.FillRectangle(myBackColorBrush, myTextRectangle);
            e.Graphics.DrawImage(toolTipImage, myImageRectangle);
            e.Graphics.DrawString(e.ToolTipText, myFont, 
            myTextBrush, myTextRectangle, myTextFormat);
        }
        else
        {
            e.Graphics.DrawString(e.ToolTipText, myFont, 
            myTextBrush, myImageRectangle, myTextFormat);
        }
}