WPF中转换与关键帧动画及报错:WPF动画找不到依赖属性:属性未指向路径“(0).(1)[3].(2)”中的 DependencyObject
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的更多相关文章
- 【maven】【IDEA】idea中使用maven编译项目,报错java: 错误: 找不到符号 【2】
=================================================================================== idea中使用maven编译项目 ...
- IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式
转载请注明来源:四个空格 » IntelliJ IDEA中Mapper接口通过@Autowired注入报错的正确解决方式: 环境 ideaIU-2018.3.4.win: 错误提示: Could no ...
- 【转载】访问IIS中网站出现 403.14 - Forbidden报错信息
将网站发布后部署到IIS后,配置完应用程序池以及相关设置项后,在浏览器中访问设置好的网站,出现403.14 - Forbidden的错误信息,从错误信息的提示来看,应该是IIS服务器此网站目录的内容被 ...
- 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 ...
- [python]解决Windows下安装第三方插件报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xcb in position 0:
系统:win7IDE:pycharm Python版本:2.7 安装第三方插件是报错: 报错原因与编码有关,pip把下载的临时文件存放在了用户临时文件中,这个目录一般是C:\Users\用户名\Ap ...
- ie8 报错:意外地调用了方法或属性访问
在某场景中一句简单的js: $("#changeOption").text("增加"); 在 IE8 下面报错:'意外地调用了方法或属性访问' 改成:$(&qu ...
- C语言报错:“gets”: 找不到标识符。解决方法
C语言报错:“gets”: 找不到标识符. 把“gets”改成“gets_s”即可.
- scala的trait执行报错: 错误: 找不到或无法加载主类 cn.itcast.scala.`trait`
scala的trait执行报错: 错误: 找不到或无法加载主类 cn.itcast.scala.`trait`.Children 原因:包名写成了trait,与trait关键字重名了: package ...
- 关于JAVA中Byte数据类型二进制赋值运算报错问题
自从JDK7更新之后,新增了二进制变量的表示,支持将整数类型用二进制来表示,用0b开头: 例如: byte b= (byte) 0b1000_0001; short s = (short) 0b100 ...
- 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, ...
随机推荐
- php 动态实例化某个类
$name = 'test'; $controller = 'test'; $a = '\\addons\\'.$name.'\\model\\'.$controller; $this->mod ...
- docker持久化数据存储
一.把数据存储到本地/opt/data目录下面,容器挂载到/data目录下面 [root@docker-1 ~]# docker run -itd --name www -v /opt/data:/d ...
- js转换文件的size由KB转换为B、MB、GB
// 单位转换export function bytesToSize(sizes) { let mYsize = sizes if(mYsize == 0) return 0 + 'B'; if(mY ...
- Asp.Net Core中使用日志组件log4net
我们在开发任何项目过程中,记录各种日志是太正常不过的事情.没有日志记录的项目,也不可能放心进入生产环境运行.因此日志的记录,是必须要做的. 在.NET开发中,log4net是个常用的日志组件.本文简单 ...
- (面试题)面试官为啥总是让我们手撕call、apply、bind?
引言 上一篇关于<面试官为啥总是喜欢问前端路由实现方式>的文章发布后,发现还是挺受欢迎的.这就给我造成了一定的困惑 之前花了很长时间,实现了一个自认为创意还不错的关于前端如何利用node+ ...
- Fastreport 如果值相同合并单元格
在fastreport 中设置text的属性即可 效果如下
- python 发送 application/x-www-form-urlencoded 类型的数据包
在网上百度了很多,坑的要死,基本不咋好用,自己多尝试了几遍,成功实现了. data 的构建方式 data = f"page={page}&sign={sign}&t={t}& ...
- 移动端唤起QQ聊天 (ios android 包含微信、qq内置浏览器)
var u = navigator.userAgent; var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); if(isiOS){ if(u ...
- 实验:笔记本电脑做桥接有线网络,笔记本通过wifi连手机热点,,硬件通过笔记本的有线网口上网
1.问题 我们需要做实验,将我们设计的W5500实验板上internet, 搭建环境比较麻烦. 1)学校上网需要先HTTP认证: 2)家里经常路由器固定位置,没有足够长的网线: 3)有时候需要临时搭 ...
- 启动anaconda的报错:There is an instance of anaconda navigator already running error
首先调出控制台(win+r,输入cmd),然后在控制台输入 tasklist | findstr "pythonw" 在显示出pythonw.exe后,找到其后面的pid(数字), ...