WPF:如何获取ListView项目中的图像位置?

时间:2010-07-12 10:28:30

标签: wpf listviewitem

ListViewItem包含一个缩略图

当鼠标悬停在缩略图上时,我想显示一个大图像,

中心应该在缩略图和大图像之间相等,

有什么建议吗?

抱歉我的英语不好, 有一张关于我的想法的照片,也许你可以看到我说的话: http://farm5.static.flickr.com/4100/4788840950_7d952a384c_b.jpg

3 个答案:

答案 0 :(得分:1)

您可以将大图像放在列表视图项目中(例如在网格中),并使用RenderTransform将大图像缩放到完整大小而不更改列表视图的布局。

或者,如果您想自己完成工作,请使用Visual.TransformToDescendantVisual.TransformToAncestor

答案 1 :(得分:0)

你应该在O'REILLY出版的Judith Bishop书C#3.0设计模式中详细描述一个FlyWeight模式。一旦实现了FlyWeight演示,其他工作将变得简单。然后,您只需要在DataTemplate中使用鼠标悬停事件来显示FullSize图像。

答案 2 :(得分:0)

对不起,我不太明白这个问题,但您可以通过方法获得用于将缩略图定位到任何视觉祖先的转换

var transform = thumbnail.TransformToAncestor(AnyAncestorControl);

然后您可以使用该转换,调用Transform()方法获取相对于AnyAncestorControl(通常是您的页面/控件的根目录)的边界并使用bounds变量来定位新的较大图像。

HTH