Visual Layer Overview(3)--VisualTreeHelper Class
2006-06-10 23:53
477 查看
[align=left] [/align]
[align=left] VisualTreeHelper class 是一个 static helper class ,它提供了在运行环境管理Visual和 Visual3D 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]
[align=left] VisualTreeHelper class 是一个 static helper class ,它提供了在运行环境管理Visual和 Visual3D 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]
相关文章推荐
- VisualTreeHelper遍历listbox遇到的问题,测试解决办法
- WPF利用VisualTreeHelper遍历寻找对象的子级对象或者父级对象
- HOW TO: Implement a DataSet SELECT DISTINCT Helper Class in Visual C# .NET
- WPF中Visible设为Collapse时,VisualTreeHelper.GetChildrenCount为0
- Visual Layer Overview(6)Using DrawingVisual Objects
- WPF中Visible设为Collapse时,VisualTreeHelper.GetChildrenCount为0
- 使用VisualTreeHelper.GetDrawing(Visual v)枚举所有Visual内容的对象
- HOW TO: Implement a DataSet JOIN helper class in Visual C# .NET(DataSetHelper)
- WPF 3D Hit Test method VisualTreeHelper.HitTest()
- WPF之VisualTreeHelper
- DataSet SELECT DISTINCT Helper Class in Visual C# .NET
- ataTable 去除重复项 HOW TO: Implement a DataSet SELECT DISTINCT Helper Class in Visual C# .NET
- VisualTreeHelper
- WPF中的VisualTreeHelper
- WPF之ComboBox的VisualTreeHelper
- VisualTreeHelper 可视化树 逻辑树
- VisualTreeHelper使用之ListBox模板DataTemplate中CheckBox选中项(WP7.1)
- 使用VisualTreeHelper获取DataTemplate中的控件
- Visual Layer Overview(1)--Role of the Visual Object
- Visual Layer Overview(5)Hit Testing in the Visual Layer