有没有一种方法可以通过Xaml访问My.Resources资源?就像这样:
这是我得到的错误信息: \Application.xaml(122,36): error MC3029: 'my:Resources' 成员无效,因为它没有合格的类型名称。 以上当然不起作用。
注意:此转换器仅用于说明。
更新:
我想了一个想法,如果可行的话可能是一个好方法,我创建了一个资源的包装类:
<Image Source="{Binding MyImage,
Source={x:Static my:Resources},
Converter={StaticResource MyBitmapToImageSourceConverter}}" />
这是我得到的错误信息: \Application.xaml(122,36): error MC3029: 'my:Resources' 成员无效,因为它没有合格的类型名称。 以上当然不起作用。
注意:此转换器仅用于说明。
更新:
我想了一个想法,如果可行的话可能是一个好方法,我创建了一个资源的包装类:
Public Class Resources
Public Shared ReadOnly m_Resources As New Resources
Public Shared ReadOnly Property Resources() As Resources
Get
Return m_Resources
End Get
End Property
Public ReadOnly Property MyResources(ByVal name As String) As Object
Get
Return My.Resources.ResourceManager.GetObject(name)
End Get
End Property
End Class
然后在我的绑定中,我尝试像这样访问它:
<Setter Property="ImageSource"
Value="{Binding MyResources[Ok], Source={x:Static src:Resources.Resources}}"/>
但我仍然收到以下消息:
System.Windows.Data Error: 16 : 无法从'' (类型为'Resources')获取'MyResources'值(类型为'Object')。BindingExpression:Path=MyResources[Ok]; DataItem='Resources' (HashCode=59109011); target element is 'Image' (Name='btnOk'); target property is 'Source' (type 'ImageSource') TargetParameterCountException:'System.Reflection.TargetParameterCountException: 参数计数不匹配。
顺便说一下,我在MyResources Getter中放置了一个测试MessageBox,似乎根本没有访问该属性。