我有一個按鈕,並在我的按鈕,我有一個圖像控制。當用戶點擊圖片時,我想爲按鈕設置動畫效果,這樣看起來按鈕被按下了。我真的不在乎實際的按鈕按下事件是否觸發 - 這是我想看到的按鈕按下的幻覺。模擬Winforms按鈕點擊動畫
注意:我在網上看到的唯一選項涉及直接寫入Windows API - 複雜性和非可升級性的級別,我真的不想進入。
我有一個按鈕,並在我的按鈕,我有一個圖像控制。當用戶點擊圖片時,我想爲按鈕設置動畫效果,這樣看起來按鈕被按下了。我真的不在乎實際的按鈕按下事件是否觸發 - 這是我想看到的按鈕按下的幻覺。模擬Winforms按鈕點擊動畫
注意:我在網上看到的唯一選項涉及直接寫入Windows API - 複雜性和非可升級性的級別,我真的不想進入。
我最終通過給它一個凸起的邊框樣式讓我的picturbox看起來像一個按鈕。然後在mouseclick事件中,我通過將邊框樣式改變幾百毫秒來模擬按鈕的外觀。
Private Sub simulateButtonPress(ByRef pictureBox As Infragistics.Win.UltraWinEditors.UltraPictureBox)
pictureBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Inset
Application.DoEvents()
System.Threading.Thread.Sleep(400)
pictureBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Raised
Application.DoEvents()
End Sub
爲什麼不只是使用兩個不同的圖像,一個用於正常狀態,另一個用於按下按鈕時。
如果你想要更復雜的路線嘗試使用GDI +。以下是關於如何做到這一點的快速sample tutorial。
爲什麼在按鈕控件中使用圖像控件而不是使用button control's Image property?
使用按鈕的圖像屬性將爲您提供一個帶有圖像的按鈕,用戶可以按下該圖像並在不做任何額外工作或重新實現已有功能的情況下提升OnClick事件。
我試過了,但圖像拉伸功能不足以處理我想要的東西。 – Jeff 2009-07-29 15:44:35
實際上找到了一個更好的解決方案 - 將Insert插入到MouseDown發明和Raised int mouseUp事件中 - 然後綁定到按下鼠標按鈕的時間。 (就像真正的按鈕工作)。這還可以防止在第一次模擬點擊仍在運行時發生第二次點擊。 – Jeff 2009-07-29 15:56:04