NetGhost的专栏

金樽清酒斗十千,玉盘珍馐直万钱。停杯投箸不能食,拔剑四顾心茫然。欲渡黄河冰塞川,将登太行雪暗天。闲来垂钓坐溪上,忽复乘舟梦日边。行路难,行路难,多歧路,今安在。长风破浪会有时,直挂云帆济沧海。...

Visual Layer Overview(3)--VisualTreeHelper Class

        
          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))
阅读更多
个人分类: WPF/XAML
上一篇2006世界杯猜想
下一篇Visual Layer Overview(4)--Other Visual Object Classes
想对作者说点什么? 我来说一句

安捷伦hsupa解决方案

2010年09月26日 846KB 下载

没有更多推荐了,返回首页

关闭
关闭