2012-06-21 18 views
1

一旦我使用visualTreeHelper.getchild來查找子對象,我將如何獲取該對象的名稱,甚至是該對象的其他屬性(如寬度或高度)?在WPF中獲取子屬性使用VisualTreeHelper不返回值

這並不工作:

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) 

它說類型的值「名稱」不能至少轉換爲system.windows.dependencyProperty

也不該作品(但它編譯):

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 

如果我把鼠標懸停在childvisual,我可以看看它的屬性,並看到該名稱已被設置爲我在畫布上的圖像名稱(Can1)。 但是,X和Y總是0.

+0

確定這工作:(剛發現它) – SDanks

+0

'昏暗childVisual視覺= CTYPE(VisualTreeHelper.GetChild(CAN1,I),視覺) 昏暗ChildName的String = ChildVisual.GetValue(Control.NameProperty) ' – SDanks

回答

0

我終於在網上發現了這個,它似乎很好用。

Dim childVisual As Visual = CType(VisualTreeHelper.GetChild(Can1, i), Visual) 
Dim ChildName As String = ChildVisual.GetValue(Control.NameProperty)