2
我看到Silverlight效果,另一个我很喜欢,我想知道如何重现它。该应用程序的主屏幕上有5或6个大按钮,轻轻地上下移动几个像素,就好像它们在徘徊。如何在Silverlight中创建“悬停”按钮?
有人可以提供一些XAML来达到这种效果吗?
我看到Silverlight效果,另一个我很喜欢,我想知道如何重现它。该应用程序的主屏幕上有5或6个大按钮,轻轻地上下移动几个像素,就好像它们在徘徊。如何在Silverlight中创建“悬停”按钮?
有人可以提供一些XAML来达到这种效果吗?
一个空白的用户控件和一个按钮叫按钮:
<UserControl.Resources>
<Storyboard x:Name="sbHover" RepeatBehavior="Forever" AutoReverse="False">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="button" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
<EasingDoubleKeyFrame KeyTime="00:00:00.4000000" Value="-4"/>
<EasingDoubleKeyFrame KeyTime="00:00:00.8000000" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</UserControl.Resources>
<Button x:Name="button" Height="79" Margin="177,128,236,0" VerticalAlignment="Top" Content="Button" RenderTransformOrigin="0.5,0.5">
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Button.RenderTransform>
</Button>
后面的代码:
public partial class MainPage : UserControl
{
public MainPage()
{
// Required to initialize variables
InitializeComponent();
this.Loaded +=new System.Windows.RoutedEventHandler(MainPage_Loaded);
}
private void MainPage_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
sbHover.Begin();
}
}
你可以调整的缓解时间和价值观改变的速度和距离鲍勃的,同样你可以添加一个缓动来获得更好的反弹效果。
完美TreeUK - 正是我以后。非常感谢。 – 2010-01-19 23:38:59
你有链接到应用程序,所以我们确切地知道你在说什么? – 2010-01-19 23:14:53
一个链接将是伟大的。 – bendewey 2010-01-20 03:07:55
它实际上是一个WPF应用程序,但我认为Silverlight可以做同样的事情。它被称为“Silicon Studio软件演示”,你应该可以通过谷歌找到它(目前在受限制的互联网访问,对不起!) – 2010-01-20 03:20:08