关闭

Visual Layer Overview(3)--VisualTreeHelper Class

1687人阅读 评论(0) 收藏 举报
        
          VisualTreeHelper class 是一个 static helper class ,它提供了在运行环境管理Visual Visual3D objects 的功能.
 
Hit Testing
 
VisualTreeHelper class 提供了可视化对象之间的Hit Testing的方法.
 
 
Enumerating the Visual Tree
VisualTreeHelper class 提供了枚举visual tree的成员的功能。得到父节点。调用GetParent 方法. 取得孩子节点, 或者可视对象的直接后继,调用 GetChild 方法.
visual tree可以使用下面的算法,很容易的遍历
C#
// Enumerate all the descendants of the visual object.
static public void EnumVisual(Visual myVisual)
{
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(myVisual); i++)
    {
        // Retrieve child visual at specified index value.
        Visual childVisual = VisualTreeHelper.GetChild(myVisual, i);
 
        // Do processing of the child visual object.
 
        // Enumerate children of the child visual object.
        EnumVisual(childVisual);
    }
}
 
VisualTreeHelper class 提供了返回可视对象包围矩形的方法。可以调用GetContentBounds返回可视对象包围矩形. 还可以返回visual object 的所有子孙的包围矩形,需要调用GetContentBounds. 下面的代码显示了怎么计算一个可视对象和它的所有子孙的包围矩形。
C#
// Return the bounding rectangle of the parent visual object.
Rect rectBounds = VisualTreeHelper.GetContentBounds(parentVisual);
 
// Expand the rectangle to include the bounding rectangle
// of the all of the visual object's descendants.
rectBounds.Union(VisualTreeHelper.GetDescendantBounds(parentVisual))
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:72909次
    • 积分:992
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:4篇
    • 译文:9篇
    • 评论:17条
    文章分类
    最新评论