簡體   English   中英

WPF-如何正確使用MouseEnter,Click和MouseLeave更改ToggleButton的背景?

[英]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);

當鼠標進入ToggleButtonMouseEnter事件MouseEnter當前ToggleButton和先前ToggleButtonForeground設置為淺黃色,如下所示:

懸停並單擊

MouseLeave事件將所有ToggleButtonForeground重置為以前的狀態。

Click事件應該立即將當前ToggleButton和前一個ToggleButtonForeground設置為金色(因此,第二個圖像中的4個星星應與第一個圖像具有相同的顏色)。 現在出現了問題-在此事件處理程序中設置Foreground實際上什么也沒做! MouseLeave觸發之前,不會設置背景。

如果未設置MouseEnterMouseLeave事件處理程序,則Foreground將立即在Click處理程序中更改,這是所需的行為。 但是,懸停功能顯然將不起作用。

我該怎么做才能解決此問題?

在事件處理程序上,如果您不希望事件從MouseEnter-> Click冒泡,則必須將Handled屬性設置為true 這樣它就不會立即更改Foreground

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM