日期:2014-05-17  浏览次数:21100 次

一个Button样式的实现
想要实现一个Buttonr动画效果,
有一张有五个状态的PNG图,
初始的时候是PNG中前20个象素
mouse over的时候,更改为第二个20个象素的图片
这个怎么实现啊~~google了好久~~~在线等~~
------解决方案--------------------
你可以设置几个属性,比如
defautlimage,mouseoverimage,mousedownimage...

当你有鼠标动作时,比如OnMouseOver时,写代码button1.BackgroundImage = mouseoverimage
------解决方案--------------------
public class ImagePixel
    {

        public ImagePixel(Image DefaultImage, Rectangle Normal, Rectangle Move, Rectangle Drop, PictureBox pbContainer)
        {
            Image NormalImage;
            Image MoveImage;
            Image DropImage;

            Bitmap map = new Bitmap(DefaultImage);
            NormalImage = map.Clone(Normal, System.Drawing.Imaging.PixelFormat.Format64bppPArgb);
            MoveImage = map.Clone(Move, System.Drawing.Imaging.PixelFormat.Format64bppPArgb);
            DropImage = map.Clone(Drop, System.Drawing.Imaging.PixelFormat.Format64bppPArgb);
            pbContainer.Image = NormalImage;

            pbContainer.MouseMove += delegate
            {
                pbContainer.Image = MoveImage;
            };
            pbContainer.MouseLeave += delegate
            {
                pbContainer.Image = NormalImage;
            };
            pbContainer.MouseDown += delegate
            {
                pbContainer.Image = DropImage;
            };

        }


    }


那方法的几个Rectangle类型的参数就是读取图片的的区域,如:
 ImagePixel ip_1 = new ImagePixel(TempApp.Properties.Resources.SetBtn, new Rectangle(0, 0, 33, 19), new Rectangle(33, 0, 33, 19), new Rectangle(66, 0, 33, 19), pb_1);