WPF图片特效

Posted weixin_44543308

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF图片特效相关的知识,希望对你有一定的参考价值。

 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:WPF 、Picture

撰写日期:2020年09月28日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

WPF中的图片特效(RenderTransform)类是为了达到直接去改变某个Silverlight对象的形状(比如缩放、旋转一个元素),RenderTransform包含的变形属性成员就是专门用来改变Silverlight对象形状的,它可以实现对元素拉伸,旋转,扭曲等效果,同时变形特效也常用于辅助产生各种动画效果。

 ,RenderTransform 类成员有如下几种:

1、TranslateTransform:能够让某对象的位置发生平移,TranslateTransform 平移它包含了X轴、Y轴两个属性,以原来的的对象为坐标原点(0,0),然后向X轴、Y轴进行平移变换。

2、RotateTransform:能够让某对象发生旋转,根据中心点进行顺时针或逆时针旋转,

  RotateTransform 旋转包括属性Angle(旋转角度),CenterX、CenterY(旋转的中心)

3、ScaleTransform:能够让某对象发生缩放,ScaleTransform 缩放包括属性ScaleX、ScaleY、  CenterX、CenterY,其中ScaleX、ScaleY属性表示对象在X、Y轴进行缩放的倍数,使用CenterX 和 CenterY属性指定一个中心点

4、SKewTransform:能够让某对象发生扭曲,SKewTransform 包括属性AngleX、AngleY、CenterX、CenterY。其中使用AngleX让元素相对X轴倾斜角度,AngleY是让元素围绕Y轴的倾斜角度。同样CenterX和CenterY是中心点位置。

5、TransformGroup:能够让某对象的缩放、旋转、扭曲等变化同时进行,TransformGroup 缩放、旋转、扭曲等变化效果合并起来。以上四种基本变化只是单一的变化,如果想要实现多种效果的叠加,那么就要使用到TransformGroup,否则会报错。TransformGroup的作用类似于在控件布局中的StackPanel内嵌的作用,是把多种变化元素组合成一种变化的容器。

6、MatrixTransform:能够让某对象通过矩阵算法实现更为复杂的变化。

代码效果如下:(如上的几种方法都包含在其中)

<!-- MatrixTransform矩阵变换-->

    <Canvas Width="1500" Height="1000">

        <StackPanel Orientation="Horizontal" Canvas.Top="50">

            <!--TranslateTransform 平移-->

            <Image Source="Images/1000263.jpg" Width="100" Height="100" Stretch="Fill" Margin="10" Opacity="0.5"></Image>

            <Image Source="Images/1000263.jpg" Width="100" Height="100" Stretch="Fill" Margin="10" >

                <Image.RenderTransform>

                    <MatrixTransform Matrix="1 0 0 1 -80 30"></MatrixTransform>

                </Image.RenderTransform> </Image>

            <!--RotateTransform 旋转-->

            <Image Source="Images/248914-106.jpg" Width="100" Height="100" Stretch="Fill" Margin="10" Opacity="0.5"></Image>

            <Image Source="Images/248914-106.jpg" Width="100" Height="100" Stretch="Fill" Margin="10" >

                <Image.RenderTransform>

                    <!--90°旋转-->

                    <MatrixTransform Matrix="0 1 -1 0 30 0"></MatrixTransform>

                </Image.RenderTransform>

            </Image>

            <!--ScaleTransform 缩放-->

            <Image Source="Images/8.jpg" Height="100" Width="100" Stretch="Fill" Margin="10" Opacity="0.5"></Image>

            <Image Source="Images/8.jpg" Height="100" Width="100" Stretch="Fill" Margin="10">

                <Image.RenderTransform>

                    <!--放大1.5倍-->

                    <MatrixTransform Matrix="1.5 0 0 1.5 -80 0"></MatrixTransform>

                </Image.RenderTransform>

            </Image>

            <!--SkewTransform 扭曲倾斜-->

            <Image Source="Images/PS4 Wallpaper Part12 (6)_看图王.jpg" Width="100" Height="100" Stretch="Fill" Margin="10" Opacity="0.5"></Image>

            <Image Source="Images/PS4 Wallpaper Part12 (6)_看图王.jpg" Width="100" Height="100" Stretch="Fill" Margin="10">

                <Image.RenderTransform>

                    <!--X轴倾斜-->

                    <MatrixTransform Matrix="1 0 1 1 -80 0"></MatrixTransform>

                </Image.RenderTransform>

            </Image>

            <!--TransformGroup 扭曲、缩放-->

            <Image Source="Images/t010e2994394954f9b9.jpg" Height="100" Width="100" Stretch="Fill" Margin="10" Opacity="0.5"></Image>

            <Image Source="Images/t010e2994394954f9b9.jpg" Height="100" Width="100" Stretch="Fill" Margin="10">

                <Image.RenderTransform>

                    <!--X轴倾斜-->

                    <!--放大1.5倍-->

                    <MatrixTransform Matrix="1.5 0 1 1.5 -120 0"></MatrixTransform>

                </Image.RenderTransform>

            </Image>

        </StackPanel>

    </Canvas>

效果图如下:

 

 

以上是关于WPF图片特效的主要内容,如果未能解决你的问题,请参考以下文章

js放大镜特效

图片样式加hover特效

WPF特效-粒子动画

述WPF 特效是怎么实现的呢

WPF特效-绘图

WPF特效-实现3D足球效果