我正在处理shared project,并实现了Master Detail Page.现在,我向共享项目(又名embedded image)添加了图像.图像的构建动作是嵌入式资源,我正在遵循建议,将名称空间(HelloForms)和子文件夹(Ressources)考虑在内.结果应为以下内容:
如您所见,leftBarButtonItem
是通过Icon属性设置的.我试图将Icon
属性设置如下:
Icon = Device.OS == TargetPlatform.iOS ? "HelloForms.Ressources.menu.png" : null;
和
Icon = new FileImageSource { File = "HelloForms.Ressources.menu.png" };
目前,我显示的是母版页的标题,而不是图标.要使它正常工作,我必须更改什么?我对嵌入式图像的解决方案感兴趣,而对本地图像更感兴趣.
解决方法:
您的代码是错误的,您想使用ImageSource.FromResource,它是为此显式创建的:
Icon = ImageSource.FromResource("HelloForms.Ressources.menu.png");
编辑:
图标是FileStream,因此无法使用ImageSource.同样,Xamarin这样做是有充分的理由的,该文件将用于表示Android桌面上的应用程序,因此系统必须可以访问该文件,并且嵌入式资源不能位于资源文件内部.
“嵌入式资源”在这里引起混乱,在iOS项目上Xamarin将默认的“内容”操作更改为“嵌入式资源”,这导致它被认为嵌入在.net程序集中,但是没有,它已复制到项目中.
只需将文件作为资源添加到iOS / Android项目中,然后直接使用文件名即可.