【发布时间】:2014-06-05 14:10:00
【问题描述】:
好吧,我从there获得的函数有问题
[VB.NET]
Public Class TreeHelper
Public Shared Function FindVisualChildByName(Of T As FrameworkElement)(parent As DependencyObject, name As String) As T
Dim child As T = Nothing
For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(parent) - 1
Dim ch = VisualTreeHelper.GetChild(parent, i)
child = TryCast(ch, T)
If child IsNot Nothing AndAlso child.Name = name Then
Exit For
Else
child = FindVisualChildByName(Of T)(ch, name)
End If
If child IsNot Nothing Then
Exit For
End If
Next
Return child
End Function
End Class
还有 XAML 部分:
<TabItem x:Name="itemControls"
Height="50"
Margin="0"
VerticalAlignment="Top"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
Padding="6,1">
<TabItem.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image x:Name="iconKB"
Width="25"
Height="25"
Stretch="Fill" />
</StackPanel>
</DataTemplate>
</TabItem.HeaderTemplate>
</TabItem>
所以,我尝试使用以下语法编辑 iconKB 图像的源代码:
TreeHelper.FindVisualChildByName(Of Image)(itemControls, "iconKB").Source = New BitmapImage(New Uri("pack://application:,,,/Resources/icons/Keyboard.png"))
但由于某种原因它没有改变。它保持空白。 (而且问题不在于New BitmapImage(New Uri("pack://application:,,,/Resources/icons/Keyboard.png")) 完全用另一个图像控件检查)
提前致谢。
【问题讨论】:
标签: wpf xaml datatemplate tabitem