您可以使用指針事件要做到這一點,但你必須通過AddHandler
方法來手動添加處理程序,你就還需要能夠處理以前處理的指針事件,以確保UI住宿是一致的。
您可以使用此代碼:
MyButton.AddHandler(
UIElement.PointerEnteredEvent, // The target event
new PointerEventHandler((s, e) =>
{
// Handle your background here
}),
true); // Include previously handled events
這些都是你需要使用的事件:UIElement.PointerEnteredEvent
,UIElement.PointerExitedEvent
,UIElement.PointerCaptureLostEvent
,UIElement.PointerCanceledEvent
,UIElement.PointerReleasedEvent
。
您需要根據源事件調整按鈕的背景,因爲其中一些方法在用戶開始按下按鈕時觸發,而其他方法在釋放按鈕時觸發。
編輯:這裏是添加處理一個例子,當按鈕被釋放:
foreach (RoutedEvent target in new[] { UIElement.PointerExitedEvent, UIElement.PointerCaptureLostEvent,
UIElement.PointerCanceledEvent, UIElement.PointerReleasedEvent })
{
MyButton.AddHandler(target, new PointerRoutedEventArgs((s, e) =>
{
MyButton.Background = new SolidColorBrush(Colors.Red);
}), true);
}
做的PointerPressedEvent
與其他刷(當按鈕被按下)相同的,你應該是所有組。
所以,你要當按下和粉紅色時沒有按下按鈕是白色的? – AVK