WPF中的转换有:

//    在二维 x-y 坐标系内围绕指定点按顺时针方向旋转对象。
<RotateTransform />
// 在二维 x-y 坐标系中平移(移动)对象。
<TranslateTransform />
// 在 2-D x-y 坐标系统内缩放对象。
<ScaleTransform />
// 表示 2-D 倾斜。
<SkewTransform />

将转换与关键帧动画共用:

<Button
x:Name="Button01"
Grid.Row="1"
Grid.Column="2"
Width="100"
Content="Click Me"
RenderTransformOrigin="0,0">
<Button.RenderTransform>
<TransformGroup>
<RotateTransform />
<TranslateTransform />
<ScaleTransform />
<SkewTransform />
</TransformGroup>
</Button.RenderTransform>
<Button.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames
AutoReverse="False"
BeginTime="0:0:0.0"
Storyboard.TargetName="Button01"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(ScaleTransform.ScaleX)">
<EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="1" />
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0.5" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames
AutoReverse="False"
Storyboard.TargetName="Button01"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(ScaleTransform.ScaleX)">
<EasingDoubleKeyFrame KeyTime="0:0:0" Value="0.5" />
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="1" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>

如果xaml中,去掉以下代码:

<Button.RenderTransform>
<TransformGroup>
<RotateTransform />
<TranslateTransform />
<ScaleTransform />
<SkewTransform />
</TransformGroup>
</Button.RenderTransform>

代码可以编译成功,运行便会报错,错误信息如下:

代码中的:TransformGroup是一个类,该类中封装着一个属性Children,Children是一个TransformCollection类型,就是一个集合,该集合中的元素,如下:

TransformCollection[0] = RotateTransform实例
TransformCollection[1] = TranslateTransform
TransformCollection[2] = ScaleTransform
TransformCollection[3] = SkewTransform

所以,关键帧动画中的TargetProperty属性值 ,取集合中的第三个:Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(ScaleTransform.ScaleX)"

本例中,只用到ScaleTransform缩放功能,也可以写成下面样式

            <Button.RenderTransform>
<TransformGroup>
<ScaleTransform />
</TransformGroup>
</Button.RenderTransform>
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"

WPF中转换与关键帧动画及报错:WPF动画找不到依赖属性:属性未指向路径“(0).(1)[3].(2)”中的 DependencyObject的更多相关文章

  1. 【maven】【IDEA】idea中使用maven编译项目,报错java: 错误: 找不到符号 【2】

    =================================================================================== idea中使用maven编译项目 ...

  2. IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式

    转载请注明来源:四个空格 » IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式: 环境 ideaIU-2018.3.4.win: 错误提示: Could no ...

  3. 【转载】访问IIS中网站出现 403.14 - Forbidden报错信息

    将网站发布后部署到IIS后,配置完应用程序池以及相关设置项后,在浏览器中访问设置好的网站,出现403.14 - Forbidden的错误信息,从错误信息的提示来看,应该是IIS服务器此网站目录的内容被 ...

  4. eclipse 中离线安装activiti插件,报错“An error occurred while collecting items to be installed session context was:(...”

    eclipse 中离线安装activiti插件,报错“An error occurred while collecting items to be installed session context ...

  5. [python]解决Windows下安装第三方插件报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xcb in position 0:

    系统:win7IDE:pycharm Python版本:2.7 安装第三方插件是报错:  报错原因与编码有关,pip把下载的临时文件存放在了用户临时文件中,这个目录一般是C:\Users\用户名\Ap ...

  6. ie8 报错:意外地调用了方法或属性访问

    在某场景中一句简单的js: $("#changeOption").text("增加"); 在 IE8 下面报错:'意外地调用了方法或属性访问' 改成:$(&qu ...

  7. C语言报错:“gets”: 找不到标识符。解决方法

    C语言报错:“gets”: 找不到标识符. 把“gets”改成“gets_s”即可.

  8. scala的trait执行报错: 错误: 找不到或无法加载主类 cn.itcast.scala.`trait`

    scala的trait执行报错: 错误: 找不到或无法加载主类 cn.itcast.scala.`trait`.Children 原因:包名写成了trait,与trait关键字重名了: package ...

  9. 关于JAVA中Byte数据类型二进制赋值运算报错问题

    自从JDK7更新之后,新增了二进制变量的表示,支持将整数类型用二进制来表示,用0b开头: 例如: byte b= (byte) 0b1000_0001; short s = (short) 0b100 ...

  10. Loadrunner在场景中添加多个负载机报错:Action.c(38): Error -26488: Could not obtain information about submitted解决方法

    Error -26488: Could not obtain information about submitted file "E:\.jpg": _stat32 rc=-1, ...

随机推荐

  1. Docker-Compose实战<下篇>

    本文是在上一篇文章的基础上做的一些内容追加,上文最后截止内容是docker-compose build将镜像生成完成.接下来我将继续写启动相关服务,访问服务以及常用命令使用等. 1 启动镜像 使用命令 ...

  2. zabbix 监控域名到期时间

    cat userparameter_http.conf UserParameter=http_discovery,/usr/bin/python /etc/zabbix/scripts/base/ht ...

  3. ABAP 物料主数据 屏幕增强按钮

    首先看效果,目标是在物料主数据中 基础数据页面新增一个按钮来满足跳转需求,这里以跳转百度为例 页面效果如下: 创建定制程序 事务代码 SPRO,路径:后勤-常规 -> 物料主数据 -> 配 ...

  4. 扫二维码 下载app

    <?phpheader("Access-Control-Allow-Origin: https:// ");$version = PAPI_GetSafeParam('ver ...

  5. windows U盘启动装机工具(Ventoy)

    Windows优盘启动装机工具 一.WePE 纯净 WePE 启动盘/ U盘重装系统工具 1.U盘重装系统工具下载地址:https://www.wepe.com.cn/download.html?td ...

  6. react 学习笔记更新

    生命周期 插槽 组件中间内容用this.props.children访问 是否组件更新 shouldcompontsupdata(props,newstatus){ return false: } 父 ...

  7. linux 第一节(linux发展)

    人间走一趟,天天奔向上. 开源: 1.使用自由 2.复制自由 3.传播自由 4.修改自由 5.创建衍生品自由 6.收费自由 1970年 UNIX 1979 AT&T 1984  gnu(开放源 ...

  8. EF存储过程

    select * from Goods --创建存储过程create proc sp_Show( @index int, --当前页 @size int, --每页大小 @totalcount int ...

  9. 安装navicat,解决No All Pattern Found! File Already Patched?

    话不多说,直接上步骤和截图! 第一步:安装包和破解工具我存到了自己的网盘中,下面是地址和提取码 链接: https://pan.baidu.com/s/1KTTV3__51kKxL3jkzW5O5A ...

  10. VirtualBox_Ubuntu22.10_Terminal无法打开

    https://blog.csdn.net/weixin_43959807/article/details/128872860