Windows phone 8.1 在Windows Phone 8.1中按下按钮时更改按钮的外观
我有一个Windows Phone 8.1 RT应用程序 我的页面上有一个图像按钮 我想要的是,当我按下这个按钮时,我要么将边框设置为黄色,要么/并更改图像 所以,在我看来,我只需要捕捉按键和基普事件 在keydown事件中,我设置了“影响” 在keyup中,我恢复到默认状态 唯一的问题是,当我为此运行/测试时,这些事件从未命中 这是我的标记:Windows phone 8.1 在Windows Phone 8.1中按下按钮时更改按钮的外观,windows-phone-8.1,imagebutton,Windows Phone 8.1,Imagebutton,我有一个Windows Phone 8.1 RT应用程序 我的页面上有一个图像按钮 我想要的是,当我按下这个按钮时,我要么将边框设置为黄色,要么/并更改图像 所以,在我看来,我只需要捕捉按键和基普事件 在keydown事件中,我设置了“影响” 在keyup中,我恢复到默认状态 唯一的问题是,当我为此运行/测试时,这些事件从未命中 这是我的标记: <Button Name="btn0" Width="75" Height="75"> <Bu
<Button Name="btn0" Width="75" Height="75">
<Button.Background >
<ImageBrush ImageSource="ms-appx:///Images/0.png" Stretch="Uniform"/>
</Button.Background>
</Button>
//在我的页面的初始化事件中设置:
btn0.KeyDown += btn0_KeyDown;
btn0.KeyUp += btn0_KeyUp;
void btn0_KeyUp(object sender, KeyRoutedEventArgs e)
{
lblTitle.Text = "btn0_KeyUp"; //never hit
}
void btn0_KeyDown(object sender, KeyRoutedEventArgs e)
{
lblTitle.Text = "btn0_KeyDown"; //never hit
}
我需要做什么
谢谢按键向下和按键向上是键盘事件。如果用户将键盘焦点设置为按钮并键入,则它们应该会被击中。这可能不是你想要的 要更改按钮按下时的外观,您需要编辑按钮的样式并修改其视觉状态。选择您的按钮,右键单击,然后选择编辑模板。。。要创建默认模板的副本,请转到默认模板并编辑该部分以进行所需的更改 要将边框更改为黄色添加到默认按下的处理,请将状态更改为以下内容:
<VisualState x:Name="Pressed">
<Storyboard>
<PointerDownThemeAnimation Storyboard.TargetName="Grid"/>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonPressedForegroundThemeBrush}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="Border">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonPressedBackgroundThemeBrush}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush)" Storyboard.TargetName="Border">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="Yellow"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
有关可视状态的演练,请参见MSDN(在复选框上,但概念相同)
要做到这一点,最简单的方法是使用其视觉状态记录器混合编辑视觉状态。编辑模板,选择“状态”选项卡,然后设置要应用于该状态的属性。非常有用,给了我很多要看的内容:)。我是WP8.1的新手,但希望快速入门。我从未使用过Blend-我见过它安装在我的菜单系统上。有没有通过IDE访问它的好方法?ThanksBlend是Visual Studio的一个独立应用程序。您可以通过在解决方案资源管理器中选择项目或文件并选择“在混合中打开…”从IDE启动它