C# 如何在按钮按下和释放之间的一段时间内更改按钮的背景?
我想在按下和释放按钮时更改按钮的背景。我在c#通用windows平台上编写代码。我正在尝试以下方法,但失败了C# 如何在按钮按下和释放之间的一段时间内更改按钮的背景?,c#,.net,uwp,C#,.net,Uwp,我想在按下和释放按钮时更改按钮的背景。我在c#通用windows平台上编写代码。我正在尝试以下方法,但失败了 private void pay_LostFocus(object sender, RoutedEventArgs e) { pay.Background = new SolidColorBrush(Windows.UI.Colors.Pink); } private void one_FocusEngaged(Control sender,
private void pay_LostFocus(object sender, RoutedEventArgs e)
{
pay.Background = new SolidColorBrush(Windows.UI.Colors.Pink);
}
private void one_FocusEngaged(Control sender, FocusEngagedEventArgs args)
{
one.Background = new SolidColorBrush(Windows.UI.Colors.White);
}
您可以使用指针事件来执行此操作,但必须通过
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.pointerReledEvent
您需要根据源事件调整按钮的背景,因为其中一些方法是在用户开始按下按钮时触发的,而另一些方法是在释放按钮时触发的
编辑:下面是一个示例,用于在释放按钮时添加处理程序:
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);
}
用另一个画笔(当按下按钮时)对
指针PressedEvent
执行相同操作,您应该都已设置好。只需修改按钮的样式,尤其是按下的VisualState。样本:
然后使用它:
<Button Content="Something" Style="{StaticResource MyButtonStyle}" Padding="20" Background="Pink"/>
那么您希望按钮按下时为白色,不按下时为粉色?