在我的窗口中,我正在使用模板选择器,在此范围内,我在模板中有许多图像。我需要做的是,在页面加载时动态分配图像的源,因为它依赖于图像的其他值,但我似乎无法访问模板中的图像。
<UserControl.Resources>
<local:UIDataTemplateSelector x:Key="UITemplateSelector" />
<DataTemplate x:Key="Modern">
<Button Name="WindowIconImage_"
Grid.Row="0"
Grid.Column="0"
MaxHeight="48"
MaxWidth="48"
Width="48"
Height="48">
<Button.Template>
<ControlTemplate>
<Image Name="WindowIconImage"
IsEnabled="False"
IsHitTestVisible="False"/>
</ControlTemplate>
</Button.Template>
</Button>
</DataTemplate>
从这里开始,我希望将图像设置为我在代码中获得的值,此时我还剩下
Set(ByVal value As System.Windows.Media.ImageSource)
WindowIconImage.Source = value
End Set
我尝试了各种方法,但我无法提取要分配的值。关于如何解决这个问题的任何提示?我试图直接投射到按钮或图像,而不是按钮,但仍然没有运气
我的模板选择器:
Namespace UIDataSelector
Public Class UIDataTemplateSelector
Inherits DataTemplateSelector
Public uiVersion As String
Public Overrides Function SelectTemplate(ByVal item As Object, ByVal container As DependencyObject) As DataTemplate
Dim element As FrameworkElement = TryCast(container, FrameworkElement)
If element IsNot Nothing AndAlso item IsNot Nothing Then
uiVersion = System.Environment.GetEnvironmentVariable("xxx")
If uiVersion = "Classic" Then
Return TryCast(element.FindResource("ClassicTemplate"), DataTemplate)
ElseIf uiVersion = "Modern" Then
Return TryCast(element.FindResource("ModernTemplate"), DataTemplate)
End If
End If
Return Nothing
End Function
End Class
End Namespace