Windows phone 7 Windows Phone-圆形按钮触摸动画

Windows phone 7 Windows Phone-圆形按钮触摸动画,windows-phone-7,storyboard,windows-phone-8,windows-phone,Windows Phone 7,Storyboard,Windows Phone 8,Windows Phone,我用Blend创建了一个圆形按钮。它工作正常,但对触摸事件没有反应。该按钮应变小一点,并将不透明度设置为1.0,类似于诺基亚地图应用程序的位置按钮 这是我现有的控件模板: <ControlTemplate x:Key="RoundButtonTemplate" TargetType="Button"> <Border x:Name="ButtonBackground" BorderBrush="{TemplateBinding BorderBru

我用Blend创建了一个圆形按钮。它工作正常,但对触摸事件没有反应。该按钮应变小一点,并将不透明度设置为1.0,类似于诺基亚地图应用程序的位置按钮

这是我现有的控件模板:

        <ControlTemplate x:Key="RoundButtonTemplate" TargetType="Button">
        <Border x:Name="ButtonBackground" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="50" Margin="{StaticResource PhoneTouchTargetOverhang}">
            <ContentControl x:Name="ContentContainer" Content="{TemplateBinding Content}" RenderTransformOrigin="0.5,0.5">
                <ContentControl.RenderTransform>
                    <ScaleTransform x:Name="buttonScale" />
                </ContentControl.RenderTransform>
            </ContentControl>
        </Border>
    </ControlTemplate>


什么是正确的故事板以及它需要插入的位置?

我建议的第一件事是使用椭圆来创建圆,而不是使用带圆边的边框。这样,如果您决定按钮需要不同的大小,则无需继续调整CornerRadius。可以在网格中重叠椭圆和ContentPresenter,如下所示:

<ControlTemplate TargetType="Button">
    <Grid Background="Transparent">
       <Ellipse HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
</ControlTemplate>

要更改按钮对触摸的视觉反应方式,应在“混合”中使用视觉状态。打开按钮模板后,单击状态选项卡(如果不可见,则转到窗口状态)

如果已打开按钮模板,则应看到几个内置的视觉状态供您编辑。选择按下的状态,您将进入录制模式。按下按钮时,将显示对模板所做的任何更改。由于主内容窗口周围的红色轮廓和通知,您可以判断您处于录制模式

在此状态下,更改按下按钮时希望看到的内容。在您的情况下,将椭圆不透明度设置为100%,并将栅格上的比例变换设置为适合您需要的较小值

确保单击“状态”选项卡中的“基本状态”退出录制模式

现在,当您在运行时按下按钮时,您记录的更改应该会显示出来。它们也将是即时的。要在状态之间进行良好的转换,请返回“状态”选项卡。然后单击按下状态旁边的添加转换按钮

添加->按下和按下->的转换。这些是进入和离开按下状态时将播放的转换。您可以在此处编辑过渡持续时间和缓和功能

就我个人而言,我通常在0.2秒左右做一些事情,很容易进入/退出。现在,当您按下按钮时,在不同的视觉状态之间应该会出现轻微的动画

祝你好运