我的My.Resources中有一组图像.我想选择要在运行时动态显示的选择图像.我该怎么做呢?
'Static (Compile time) Assignment
UltraPictureBox1.Image = my.Resources.zoo_picture_1
'Dynamic (Runtime) Assignment
UltraPictureBox1.Image = ???
Run Code Online (Sandbox Code Playgroud) 有没有办法通过Xaml访问My.Resources?
像这样
<Image Source="{Binding MyImage,
Source={x:Static my:Resources},
Converter={StaticResource MyBitmapToImageSourceConverter}}" />
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误: \ Application.xaml(122,36):错误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
Run Code Online (Sandbox Code Playgroud)
然后在我的绑定中,我试着像这样访问它:
<Setter Property="ImageSource"
Value="{Binding MyResources[Ok], Source={x:Static src:Resources.Resources}}"/>
Run Code Online (Sandbox Code Playgroud)
但我仍然收到以下消息:
System.Windows.Data错误:16:无法从''(类型'资源')获取'MyResources'值(类型'对象').BindingExpression:路径=为MyResources [确定]; DataItem ='Resources'(HashCode = 59109011); target元素是'Image'(Name ='btnOk'); target属性为'Source'(类型'ImageSource')TargetParameterCountException:'System.Reflection.TargetParameterCountException:参数计数不匹配.
顺便说一下,我在MyResources Getter中放置了一个测试MessageBox,似乎根本没有访问该属性.
我有一个包含所有自定义控件和图像的项目; 我们称之为projectBase.现在我创建了一个引用projectBase的Windows窗体项目(project1).我需要在project1中访问projectBase的嵌入资源(图像).知道我怎么能把它拉下来?
我正在写一个VB.NET应用程序,我想从Resource加载一个内部文本文件.
但代码显示无效的URI:Uri字符串太长.
代码是
'document.Load("C:\Users\Sou\Documents\Visual Studio 2010\Projects\info.xml")
document.Load(My.Resources.info)
'some processing job with XML node ...
Run Code Online (Sandbox Code Playgroud)
那么,如何加载资源文件?
我在从My.Resources加载图片时遇到问题.我已经尝试过没有.代码像......:
PictureBox1.Image = My.Resources.Online_lime_icon;
和
PictureBox1.Image = CType(My.Resources.ResourceManager.GetObject("Online_lime_icon"), Image)
但它仍将返回:
Picturebox1.Image = Nothing
Run Code Online (Sandbox Code Playgroud)