[英]How to make an object to change color with MouseEnter and MouseLeave WPF
[英]Wpf - how to correctly use MouseEnter, Click, and MouseLeave to change background of a ToggleButton?
我對一組ToggleButton
有一個奇怪的問題。 我將它們用於評級控件,如下所示:
每個ToggleButton
偵聽以下事件:
rating_button.MouseEnter += new MouseEventHandler(rating_button_mouse_entered);
rating_button.Click += new RoutedEventHandler(rating_button_clicked);
rating_button.MouseLeave += new MouseEventHandler(rating_button_mouse_left);
當鼠標進入ToggleButton
, MouseEnter
事件MouseEnter
當前ToggleButton
和先前ToggleButton
的Foreground
設置為淺黃色,如下所示:
MouseLeave
事件將所有ToggleButton
的Foreground
重置為以前的狀態。
Click
事件應該立即將當前ToggleButton
和前一個ToggleButton
的Foreground
設置為金色(因此,第二個圖像中的4個星星應與第一個圖像具有相同的顏色)。 現在出現了問題-在此事件處理程序中設置Foreground
實際上什么也沒做! 在MouseLeave
觸發之前,不會設置背景。
如果未設置MouseEnter
和MouseLeave
事件處理程序,則Foreground
將立即在Click
處理程序中更改,這是所需的行為。 但是,懸停功能顯然將不起作用。
我該怎么做才能解決此問題?
在事件處理程序上,如果您不希望事件從MouseEnter-> Click冒泡,則必須將Handled
屬性設置為true
。 這樣它就不會立即更改Foreground
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.