可以利用Action来实现标题内容。
1、创建一个带opacity动画的Action。
using System.Windows;
using System.Windows.Interactivity;
using System.Windows.Media.Animation;
using System;
namespace SilverlightApp.Actions
{
public class ToggleVisibilityAction : TargetedTriggerAction<UIElement>
{
protected override void Invoke(object parameter)
{
DoubleAnimation da = new DoubleAnimation();
da.Duration = new System.Windows.Duration(TimeSpan.FromSeconds(0.3));
Storyboard sb = new Storyboard();
sb.Children.Add(da);
Storyboard.SetTarget(da, this.Target);
Storyboard.SetTargetProperty(da, new PropertyPath("Opacity"));
if (this.Target.Visibility==Visibility.Visible)
{
da.To = 0;
sb.Begin();
sb.Completed += (o, e) => { this.Target.Visibility = Visibility.Collapsed; };
}
else
{
this.Target.Visibility = Visibility.Visible;
da.To = 1;
sb.Begin();
}
}
}
}
2、xaml中用之,替代visibility属性的设置。UIElement1是需要切换可见性的空间的x:Name。
<Button x:Name="btn1" Content="点我有动画效果">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<actions:ToggleVisibilityAction TargetName="UIElement1" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
其中:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:actions="clr-namespace:SilverlightApp.Actions"
ps:t60风扇罢工了:开机一声怒吼,停留在fan error。搜索了一下,据说是缺油了,等买的螺丝刀到了以后给它加加油,希望不用去找js修。这还不到3年,51nb上那么多用x31的,我以为thinkpad少说能用10年呢。。。
没有评论:
发表评论