Silverlight 显示隐藏动画效果

Silverlight 显示隐藏动画效果,第1张

概述第一种方式: XAML文件 第一步定义资源:  <UserControl.Resources>         <Storyboard x:Key="layercollapseTransition">             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="BodyBack1"  

第一种方式:

XAML文件

第一步定义资源:

 <UserControl.Resources>
        <Storyboard x:Key="layercollapseTransition">
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.Targetname="BodyBack1"
                    Storyboard.TargetProperty="(UIElement.Rendertransform).(Translatetransform.Y)">
                <EasingDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
                <EasingDoubleKeyFrame KeyTime="00:00:00.2000000" Value="125"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
        <Storyboard x:Key="layerexpandTransition">
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.Targetname="BodyBack1"
                    Storyboard.TargetProperty="(UIElement.Rendertransform).(Translatetransform.Y)">
                <EasingDoubleKeyFrame KeyTime="00:00:00" Value="125"/>
                <EasingDoubleKeyFrame KeyTime="00:00:00.2000000" Value="0"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </UserControl.Resources>

第二部设置关联空间


 <Canvas margin="0,122,16"  HorizontalAlignment="Right"     VerticalAlignment="Bottom" Canvas.ZIndex="200" x:name="collapsedPane" Background="transparent" Visibility="Collapsed">
            <GrID >
                <Image Height="16" name="imageShow" Stretch="Fill" WIDth="16" Source="images/btn_expand.png" Opacity="0.4"
                   tooltipService.tooltip="显示图层控制" MouseleftbuttonDown="imageShow_MouseleftbuttonDown" MouseLeave="imagehIDe_MouseLeave" MouseEnter="imagehIDe_MouseEnter"
                   Cursor="Hand"/>
            </GrID>
        </Canvas>


        <Canvas x:name="BodyBack1" HorizontalAlignment="Right" VerticalAlignment="Bottom" RendertransformOrigin="0.5,0.5" Background="transparent" margin="0,207,125">
            <border x:name="citylayer"  Background="#77919191" borderThickness="1" CornerRadius="5"
HorizontalAlignment="Right" VerticalAlignment="Bottom"
margin="0,105,0" padding="5" borderBrush="Black" Canvas.left="0" Canvas.top="7">
                <StackPanel VerticalAlignment="Stretch" WIDth="90" HorizontalAlignment="Stretch" Canvas.left="0">
                    <Image  HorizontalAlignment="left"    VerticalAlignment="top" Height="16" name="imagehIDe" Stretch="Fill" WIDth="16"    Source="images/btn_expand.png"
                   tooltipService.tooltip="隐藏图层控制"
                   Cursor="Hand" MouseleftbuttonDown="imagehIDe_MouseleftbuttonDown" MouseLeave="imagehIDe_MouseLeave" MouseEnter="imagehIDe_MouseEnter" Opacity="0.4"   />
                    <CheckBox Content="污染物" Height="16" HorizontalAlignment="left"  margin="16,20" name="ckbWRWFB"    VerticalAlignment="Bottom"  Click="ckbWRWFB_Click" />
                    <CheckBox Content="污染源" Height="16" HorizontalAlignment="left"  margin="16,20" name="ckbWRY"    VerticalAlignment="Bottom"  Click="ckbWRY_Click"   />
                    <CheckBox Content="风向风速"    Height="16" HorizontalAlignment="left" margin="16,0" name="ckbFXFS" VerticalAlignment="Bottom"   Click="ckbFXFS_Click" />
                </StackPanel>
            </border>
            <Canvas.Rendertransform>
                <Translatetransform />
            </Canvas.Rendertransform>
        </Canvas>

第三步关联代码


        private voID imagehIDe_MouseleftbuttonDown(object sender,MousebuttonEventArgs e)
        {
            var collapseAnimation = (Storyboard)Resources["layercollapseTransition"];//获取故事板
            collapseAnimation.Begin();//隐藏故事板开始执行
            collapsedPane.Visibility = Visibility.Visible;//展开面板可见
        }
    
        private voID imagehIDe_MouseLeave(object sender,MouseEventArgs e)
        {
            ((Image)sender).Opacity = 0.4;//设置图片透明度
        }

        private voID imagehIDe_MouseEnter(object sender,MouseEventArgs e)
        {
            ((Image)sender).Opacity = 1;//设置图片透明度
        }
     
        private voID imageShow_MouseleftbuttonDown(object sender,MousebuttonEventArgs e)
        {
            var collapseAnimation = (Storyboard)Resources["layerexpandTransition"];//获取展开的故事板
            collapseAnimation.Begin();//故事板开始执行
            BodyBack1.Visibility = Visibility.Visible;//图层控制面板可见
            collapsedPane.Visibility = Visibility.Collapsed;//展开面板不可见
        }

第二种方式:(纯代码)

/// <summary>         /// SetHIDeAction() 设置隐藏效果         /// </summary>         /// <param name="Pcanvas">容器</param>         /// <param name="PPropertypath">属性路径</param>         /// <param name="PwIDthorheight">高度或宽度</param>         /// <param name="Plong">持续时长</param>         /// <returns></returns>         public voID SetHIDeAction(Canvas Pcanvas,string PPropertypath,int PwIDthorheight,double Plong)         {             Storyboard keyFrameboard = new Storyboard();             DoubleAnimationUsingKeyFrames dakeyframe = new DoubleAnimationUsingKeyFrames();             //设置rect矩形控件的Opacity透明度,并且开始动画事件为0秒的时候。             Storyboard.SetTarget(dakeyframe,Pcanvas);             Storyboard.SetTargetProperty(dakeyframe,new PropertyPath(PPropertypath));             dakeyframe.BeginTime = new TimeSpan(0,0);//设置开始时间             //添加一个在第二秒的时候Opacity透明度值为1的关键帧             SplineDoubleKeyFrame SKeyFrame = new SplineDoubleKeyFrame();             SKeyFrame.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(0));             SKeyFrame.Value = 0;             dakeyframe.KeyFrames.Add(SKeyFrame);             //添加一个在第四秒的时候Opacity透明度值为0.2的关键帧             SplineDoubleKeyFrame SKeyFrame1 = new SplineDoubleKeyFrame();             SKeyFrame1.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(Plong));             SKeyFrame1.Value = PwIDthorheight;             dakeyframe.KeyFrames.Add(SKeyFrame1);             keyFrameboard.Children.Add(dakeyframe);             keyFrameboard.Begin();//隐藏故事板开始执行         }         /// <summary>         /// SetShowAction() 设置显示效果         /// </summary>         /// <param name="Pcanvas">容器</param>         /// <param name="PPropertypath">属性路径</param>         /// <param name="PwIDthorheight">高度或宽度</param>         /// <param name="Plong">持续时长</param>         /// <returns></returns>         public voID SetShowAction(Canvas Pcanvas,0);//设置开始时间             //添加一个在第二秒的时候Opacity透明度值为1的关键帧             SplineDoubleKeyFrame SKeyFrame = new SplineDoubleKeyFrame();             SKeyFrame.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(0));             SKeyFrame.Value = PwIDthorheight;             dakeyframe.KeyFrames.Add(SKeyFrame);             //添加一个在第四秒的时候Opacity透明度值为0.2的关键帧             SplineDoubleKeyFrame SKeyFrame1 = new SplineDoubleKeyFrame();             SKeyFrame1.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(Plong));             SKeyFrame1.Value = 0;             dakeyframe.KeyFrames.Add(SKeyFrame1);             keyFrameboard.Children.Add(dakeyframe);             keyFrameboard.Begin();//隐藏故事板开始执行         }

@H_404_104@ 总结

以上是内存溢出为你收集整理的Silverlight 显示隐藏动画效果全部内容,希望文章能够帮你解决Silverlight 显示隐藏动画效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1016129.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存