有没有办法通过 Xaml 访问 My.Resources?
像这样
<Image Source="{Binding MyImage,
Source={x:Static my:Resources},
Converter={StaticResource MyBitmapToImageSourceConverter}}" />
这是我得到的错误:\Application.xaml(122,36):错误 MC3029:“my:Resources”成员无效,因为它没有限定类型名称。
上面的方法当然行不通。
注:转换器仅供说明之用。
Update:
我想到了一个想法,如果可行的话这可能是一个好方法,我为资源创建了一个包装类:
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 错误:16:无法从“”(类型“资源”)获取“MyResources”值(类型“对象”)。 BindingExpression:Path=MyResources[确定]; DataItem='资源'(HashCode=59109011);目标元素是“Image”(名称=“btnOk”);目标属性是“Source”(类型“ImageSource”) TargetParameterCountException:“System.Reflection.TargetParameterCountException:参数计数不匹配。
顺便说一句,我在 MyResources Getter 中放置了一个测试 MessageBox,看起来该属性根本没有被访问。