您可以使用 FluidMoveBehavior 行为来动态显示元素位置更改。但是,如果使用 FluidMoveBehavior 本身,则只能动态显示标识项的特定位置到新位置的过渡。通过将FluidMoveBehavior 与FluidMoveSetTagBehavior 结合使用,您可以动态显示从指定起点开始的过渡,即使该初始位置只是由对应用程序中所显示数据的引用指定的。
将 FluidMoveBehavior 与 FluidMoveSetTagBehavior 结合使用时,将会创建一个隐藏数据存储,以帮助您访问所需的数据,即使该数据存在于不同的范围中。尽管数据存储隐藏在视图之外,但在使用FluidMoveBehavior 和FluidMoveSetTagBehavior 时,了解数据存储的工作方式将很有帮助。
关于这两个方法详细的参数说明在这里:http://msdn.microsoft.com/zh-cn/library/ff723946(v=expression.40).aspx
1.要开blend.新建一个示例数据源,简单起见.只包含一个Image属性,将属性类型改为Image,属性名也为:Image
2.选中Collection节点,拖拽到LayoutRoot中。这样会自动生成一个ListBox,记listBox左对齐.
3.新建一个Grid,在里面放一个Image。Image填充整个
Grid。注意Image
目前不必指定图片源。
4.然后点击这个新建好的Gird,在右侧属性面板中找到
DataContext属性,点击最右侧的
,在弹出菜单中选择DataBinding...
![](https://i-blog.csdnimg.cn/blog_migrate/dcb3223b47bcc3b09e0adcd906a1d9b9.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/c6b94651cde2e587ef7929dfbe2f9ee1.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/358a4f956e62ea2c156fd06924c00a86.jpeg)
5.接下来,在弹出菜单中,打开Element Property选项卡,然后选择ListBox,接着在Properties列表里选中
SelectedItem,点击OK按钮
![](https://i-blog.csdnimg.cn/blog_migrate/f3174738c931d8adbc60e10a8d9c2afe.jpeg)
6.接下来,请选中刚才新建的Image控件,在右侧属性面板中,与上面相同,找到
Source属性,点击最右侧的
,在右键弹出菜单中选择DataBinding...
![](https://i-blog.csdnimg.cn/blog_migrate/dcb3223b47bcc3b09e0adcd906a1d9b9.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/4e306787a7bbe68eeacb6dabf711678e.jpeg)
7.在弹出窗口中,选择DataContext选项卡,这里可以看到文章开始时让他创建的示例数据源,直接选中
Image,点击OK按钮
![](https://i-blog.csdnimg.cn/blog_migrate/a68f5d3df2520e097c4f1c2bf62a3018.jpeg)
8.接下来,为Grid添加一个
FluidMoveBehavior。
![](https://i-blog.csdnimg.cn/blog_migrate/dec51a194221e7fab254097be4df908f.jpeg)
9AppliesTo属性设置为self。
![](https://i-blog.csdnimg.cn/blog_migrate/0e5680614c5d851170de575f46ce4a29.jpeg)
10.InitalTag属性设置为DataContext。
![](https://i-blog.csdnimg.cn/blog_migrate/ba772bd97df183d5369256003dddf9d2.jpeg)
11.如果你前几部都做对了,应该得到如下效果
![](https://i-blog.csdnimg.cn/blog_migrate/ae41bca80e8c682fa4a86a0698668486.jpeg)
12.接下来很关键的一步,请右击ListBox,在弹出菜单中依次选择Edit Additional Template->Edit Generated items->Edit Current,进入模板编辑界面。
![](https://i-blog.csdnimg.cn/blog_migrate/d29975baa8ad276ad0d3368d3b7967fe.jpeg)
13.为Image元素添加一个名为"FluidMoveSetTagBehavior"的行为。 注意这里是
FluidMoveSetTagBehavior而不是
FluidMoveBehavior
![](https://i-blog.csdnimg.cn/blog_migrate/9df64e5b776d627d7724323149352b1c.jpeg)
14.在右侧属性面板里设置FluidMoveSetTagBehavior的Tag属性为DataContext
![](https://i-blog.csdnimg.cn/blog_migrate/2166d184354c6d2418d097a42d9d6fca.jpeg)
程序运行效果