可以利用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年呢。。。
 
 

 
 博文
博文
 
 
没有评论:
发表评论