【发布时间】:2010-11-28 01:09:41
【问题描述】:
有没有办法通过 Xaml 访问 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 错误:16:无法从“”(类型“资源”)获取“MyResources”值(类型“对象”)。 BindingExpression:Path=MyResources[Ok]; DataItem='资源' (HashCode=59109011);目标元素是“图像”(名称=“btnOk”);目标属性是'Source'(类型'ImageSource') TargetParameterCountException:'System.Reflection.TargetParameterCountException: 参数计数不匹配。
顺便说一句,我在 MyResources Getter 中放置了一个测试 MessageBox,似乎根本无法访问该属性。
【问题讨论】:
标签: wpf vb.net xaml my.resources