Question

Once I use visualTreeHelper.getchild to find a child object, how would I get the name of that object, or even other properties of the object like width or height?

i.e.

This doesnt work:

For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(Can1) - 1
Dim ChildVisual As Visual = CType(VisualTreeHelper.GetChild(Can1, i), Visual)
Dim ChildName As DependencyProperty = childVisual.GetValue(Name)

It says value of type "Name" cannot be converted to a system.windows.dependencyProperty

Nor does this work (But at least it compiles):

For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(Can1) - 1
Dim childVisual As Visual = CType(VisualTreeHelper.GetChild(Can1, i), Visual)

Dim GT1 As GeneralTransform = childVisual.TransformToAncestor(Can1)

Dim currentpoint As Point = GT1.Transform(New Point(0, 0))

x = currentpoint.X
y = currentpoint.Y

If I hover over childvisual, I can look at it's properties and see that name has been set to a name of an image I have on the canvas(Can1). But, X and Y are always 0.

Was it helpful?

Solution

I found this finally on the net, and it seems to work great.

Dim childVisual As Visual = CType(VisualTreeHelper.GetChild(Can1, i), Visual) 
Dim ChildName As String = ChildVisual.GetValue(Control.NameProperty)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top