這是我的第一篇文章。首先,我介紹一些背景知識,我是C#的新手,並且真正處於我的初級階段。我是一名化學工程師,大部分都有MATLAB和Mathematica等語言的使用經驗,但我一直很喜歡編程,並決定學習C#爲我一直在使用的某些程序創建一些用戶友好的界面。請注意,我使用Windows窗體而不是WPF。使用mouseEnter事件來縮放按鈕
我想要做的是有一個主菜單屏幕鏈接到各種形式。現在爲了讓它看起來更漂亮,我想要做的是這個;當我將鼠標懸停在主窗口中的一個圖片框(圖片是一個按鈕)時,我希望按鈕有點「長大」,然後當我離開時,它應該縮小到原始大小。到目前爲止,我的方法是嘗試在mouseEnter事件上加載這個增長動畫的gif,然後在mouseLeave上加載一個縮小動畫,但這只是反覆循環各自的gif。我怎樣才能讓gif只玩一次?
我試圖按順序加載幀,並在它們之間插入一個線程睡眠,但是當我這樣做的時候我看到的是我嘗試加載的最後一個圖像。這裏的用於該方法,其中i嘗試顯示一個圖像的代碼的一個例子,然後0.1秒
private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
((PictureBox)sender).Image =Image.FromFile("C:/Users/michael/Desktop/131.bmp");
Thread.Sleep(100);
((PictureBox)sender).Image = Image.FromFile("C:/Users/michael/Desktop/131a.bmp");
}
而且是有一種方法可以做到這一點沒有一個GIF,諸如通過使用一個後示出另一for循環來增加按鈕或picturebox的大小?
編輯1: 我在哪裏把計時器停在這樣,當我開始第二個動畫,第一個停止?
private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
Timer timeraf = new Timer();
timeraf.Interval = 10;
timeraf.Tick += new EventHandler(timerAfwd_Tick);
timeraf.Start();
}
private void pictureBox1_MouseLeave(object sender, EventArgs e)
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
Timer timerab = new Timer();
timerab.Interval = 10;
timerab.Tick += new EventHandler(timerAbwd_Tick);
timerab.Start();
}
感謝,作品像一個魅力!沒有足夠的代表給你豎起大拇指,但是! :) –
沒問題。此處的慣例是通過單擊答案左側的小箭頭來選擇「已接受」答案。 :) –
請看我編輯的問題 –