如何从ListView对象获取视图(项目模板可能是)像图像或文本块的对象?

时间:2012-07-24 05:39:59

标签: windows windows-8

Windows Metro App:

我需要一种方法来查找组成ListView的项目(或单元格)的中心。 例如 : 如果我在一个填充ListView的堆栈面板中有一个Image和TextBlock,我想要该堆栈面板的中心或它包含的任何对象或视图。 (Windows 8新增功能) 在此先感谢.. !!

1 个答案:

答案 0 :(得分:0)

下面是一些代码,它们将为您提供元素的中心点 - 它需要一个通用的FrameworkElement,因此您可以传入ListView,StackPanel或其他控件。

    /// <summary>
    ///  Gets the center point of any element 
    /// </summary>
    private Point GetCenterPoint(FrameworkElement element)
    {
        GeneralTransform buttonTransform = element.TransformToVisual(null);

        // This gives the point in the upper left-hand corner of the element.  
        Point topLeftPoint = buttonTransform.TransformPoint(new Point());

        // Now get the center point.
        Point centerPoint = new Point();
        centerPoint.X = topLeftPoint.X + element.ActualWidth / 2;
        centerPoint.Y = topLeftPoint.Y + element.ActualHeight / 2;

        return centerPoint;
    }

希望这有帮助!