您的位置:首页 > 其它

Visual Layer Overview(3)--VisualTreeHelper Class

2006-06-10 23:53 477 查看
[align=left] [/align]
[align=left] VisualTreeHelper class 是一个 static helper class ,它提供了在运行环境管理VisualVisual3D objects 的功能.[/align]
[align=left] [/align]
[align=left]Hit Testing[/align]
[align=left] [/align]
[align=left]VisualTreeHelper class 提供了可视化对象之间的Hit Testing的方法. [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]Enumerating the Visual Tree[/align]
[align=left]VisualTreeHelper class 提供了枚举visual tree的成员的功能。得到父节点。调用GetParent 方法. 取得孩子节点, 或者可视对象的直接后继,调用 GetChild 方法.[/align]
[align=left]visual tree可以使用下面的算法,很容易的遍历[/align]
[align=left]C#[/align]
[align=left]// Enumerate all the descendants of the visual object.[/align]

[align=left]static public void EnumVisual(Visual myVisual)[/align]
[align=left]{[/align]
[align=left] for (int i = 0; i < VisualTreeHelper.GetChildrenCount(myVisual); i++)[/align]
[align=left] {[/align]
[align=left] // Retrieve child visual at specified index value.[/align]
[align=left] Visual childVisual = VisualTreeHelper.GetChild(myVisual, i);[/align]
[align=left] [/align]
[align=left] // Do processing of the child visual object.[/align]
[align=left] [/align]
[align=left] // Enumerate children of the child visual object.[/align]
[align=left] EnumVisual(childVisual);[/align]
[align=left] }[/align]
[align=left]}[/align]

[align=left] [/align]
[align=left]VisualTreeHelper class 提供了返回可视对象包围矩形的方法。可以调用GetContentBounds返回可视对象包围矩形. 还可以返回visual object 的所有子孙的包围矩形,需要调用GetContentBounds. 下面的代码显示了怎么计算一个可视对象和它的所有子孙的包围矩形。[/align]
[align=left]C#[/align]

[align=left]// Return the bounding rectangle of the parent visual object.[/align]
[align=left]Rect rectBounds = VisualTreeHelper.GetContentBounds(parentVisual);[/align]
[align=left] [/align]
[align=left]// Expand the rectangle to include the bounding rectangle[/align]
[align=left]// of the all of the visual object's descendants.[/align]
[align=left]rectBounds.Union(VisualTreeHelper.GetDescendantBounds(parentVisual))[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: