TranslateTransformを対象に、DoubleAnimation型のアニメーションを使用して、TranslateTransform.Xプロパティを ”-1 * Imageコントロールの幅” → 0 に変化させます。

-- MainWindow.xaml.cs --

Storyboard storyboard = new Storyboard();
DoubleAnimation doubleAnimation = new DoubleAnimation();
doubleAnimation.To = 0;
doubleAnimation.From = -this.image1.ActualWidth;
doubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(600));
Storyboard.SetTarget(doubleAnimation, _targetElement);
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath(
  "(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)"));
storyboard.Children.Add(doubleAnimation);
storyboard.Begin();

Image コントロールは Window に合わせてリサイズされるようにしているので、From の値にはActualWidth を指定します。

DoubleAnimation の対象となる依存関係プロパティは、Target に Image コントロールを指定しているため、上のような書き方になります。
例えば、TranslateTransform に x:Name ディレクティブを追加して、それを Target に指定すれば、次のような書き方もできます。

-- MainWindow.xaml --

<Image Name="image1" Stretch="Fill" Source="/Image/Sea.png" Margin="6">
    <Image.RenderTransform>
        <TransformGroup>
            <TranslateTransform x:Name=”translateTransform1”/>
        </TransformGroup>
    </Image.RenderTransform>
</Image>

-- MainWindow.xaml.cs --

Storyboard.SetTargetName(doubleAnimation, “translateTransform1);
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath
  (TranslateTransform.XProperty));

要は対象から辿れるように正しく設定してください、ということですね。
詳しくは以下のページをご覧ください。
http://msdn.microsoft.com/ja-jp/library/cc645024(v=VS.95).aspx#databinding_sa

代码中使用StoryBoard和DoubleAnimation的方法的更多相关文章

  1. 示例:WPF中自定义StoryBoarService在代码中封装StoryBoard、Animation用于简化动画编写

    原文:示例:WPF中自定义StoryBoarService在代码中封装StoryBoard.Animation用于简化动画编写 一.目的:通过对StoryBoard和Animation的封装来简化动画 ...

  2. 在linux代码中打印函数调用的堆栈的方法

    之前一直有这样的需求,当时问到,也没搜到方法,现在竟然既问到了,也搜到了,哎,世事真是不能强求啊! 在Linux内核调试中,经常用到的打印函数调用堆栈的方法非常简单,只需在需要查看堆栈的函数中加入: ...

  3. 输出到网页前台js代码中包含单引号的处理方法

    描述:后台输出js到前台,如     <script type="text/javascript">   //<![CDATA[       var aStepD ...

  4. vscode中检测代码中的空白行并去除的方法【转】

    按下ctrl+h键进行正则匹配:^\s*(?=\r?$)\n 然后直接替换,再看代码发现空行已经不见了.

  5. java代码中获取进程process id(转)

    另一方面,线程ID=进程ID+内部线程对象ID并不成立,    参考: blog.csdn.net/heyetina/article/details/6633901     如何在java代码中获取进 ...

  6. 理解Java中的对象,变量和方法

    1.对象的创建和销毁 1.1 对象的创建 这里只介绍创建对象与构造方法的关系 (1).每实例化一个对象就会自动调用一次构造方法,实质上这个过程就是创建对象的过程,准确的说,在Java语言中使用new操 ...

  7. 从别人的代码中学习golang系列--02

    这篇博客还是整理从https://github.com/LyricTian/gin-admin 这个项目中学习的golang相关知识 作者在项目中使用了https://github.com/googl ...

  8. YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

    上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...

  9. Android 代码中文字在手机上显示乱码问题解决方法

    在学习Android过程中,用于测试时发现,代码中的中文在真机上会显示乱码, 网上查阅了些资料,参考如下: http://www.androidchina.net/3024.html http://b ...

随机推荐

  1. session、cookie浅见

    万事开头难,刚开始不一定能写好博文,不,应该是一定写的不好,但我定会用心. 以前只知道session是存在服务器,cookie是存在客户端,至于它们工作的原理就不了解了.为了巩固自己记忆,小小的总结了 ...

  2. libvirt 网络手册(二):桥接网络

    原文:Bridged Network 在一个桥接网络里面,宿主机和虚拟机共享物理网卡.每一个虚拟机可以直接绑定任意可用的IPV4或IPV6局域网地址,就像一个物理机一样.桥接给libvirt网络提供最 ...

  3. IP变化,SVN和数据库的修改

    最近公司换了运营商,将启用新的IP地址,将以前项目的端口映射处理好之外,还需要切换SVN的地址. 项目开发中有可能要修改SVN的IP地址,entries文件里面包含svn服务器的地址信息.每个文件夹都 ...

  4. empty和isset函数详解

    1.empty函数 用途:检测变量是否为空 若变量不存在则返回 TRUE 若变量存在且其值为"".0."0".NULL..FALSE.array().var $ ...

  5. DataGridView里CheckBox实现全选控制

    1. checkbox点击事件 private void myStyleDataGridView1_CellClick(object sender, DataGridViewCellEventArgs ...

  6. acm 1002 算法设计

    最近突然想往算法方向走走,做了做航电acm的几道题 二话不说,开始 航电acm 1002 题主要是处理长数据的问题,算法原理比较简单,就是用字符数组代替int,因为int太短需要处理的数据较长 下面是 ...

  7. 安装Java的IDE Eclipse时出现java.net.SocketException,出现错误Installer failed,show.log

    ERROR: org.eclipse.equinox.p2.transport.ecf code=1002 Unable to read repository at http://download.e ...

  8. vue.js 接收url参数

    1) 路由配置传参方式 在配置路由时 例如 "/firewall/authorize/:uid/:uname/:token" 页面url为 http://XXX.com/firew ...

  9. Linux文件权限和访问模式

    为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...

  10. OOP的四个魔术方法

    1 __autoload()自动包含类文件 通常会把类的定义单独写到一个文件里,要在另外的文件调用时需要引用require,但类的定义文件会很多就会造成一下问题 //1 如果包含多个类文件,需要一一引 ...