当前位置: 首页 > 编程语言 > C#

在xamarinForm上动态绑定图片源Share

时间:2023-04-11 01:09:09 C#

在xamarinForm上动态绑定图片源我的问题是,我可以将字符串图像绑定到图像源吗?我有多个图像,如果条件图像会改变。所以:Xamal上的Xamlforms:Codebehindc#publicStringsomeImage;publicStringSomeImage{set{if(someImage!=value){someImage=value;}}得到{返回一些图像;}}InitializeComponent部分:if(true){someImage="backgroundListViewGren.png";}else{someImage="backgroundListViewRed.png";图像在便携式项目的“图像”文件夹中但是,这不起作用,也许我没有做某事,但我不明白。有解决办法吗?我尝试使用ImageSource而不是String,但这也不起作用。我会在这里发布这个答案,因为它是我正在寻找的那个,我怀疑大多数人都是(谷歌目前在这里指导你,目前不是很有帮助)。如何使用XAML绑定图像:XAML:TheninViewModel,C#:publicstringSomeImage{get{returnstring.Format("prefix-{0}-suffix.png",OtherProperty);更新,更好,但基本上你可以使用c#等价物代替上面的:publicstringSomeImage=>$"prefix-{OtherProperty}-suffix.png";这当然是最简单的设置方法,IMO:)。编辑:不言而喻,但图像显然应该在每个平台的项目资源文件夹中。你说:图片在便携项目的“Images”文件夹中每个平台都有不同的资源和图片方法。Xamarin处理每个平台,例如Xamarin.iOS具有嵌入式资源,而Xamarin.Android使用Android资源进行图像处理。你应该将你的图像放在每个项目中,以便Xamarin.Forms知道在每个平台中的何处查找它们。有关更多信息,请查看此内容。若要使用来自PCL的图像,请查看Xamarin文档中的此部分。您应该确保每个图像的构建操作都设置为嵌入式资源。然后,如果您想在XAML中使用它们,请指定MarkupExtension[ContentProperty("Source")]publicclassImageResourceExtension:IMarkupExtension{publicstringSource{get;放;}publicobjectProvideValue(IServiceProviderserviceProvider){if(Source==null){returnnull;}//在这里使用您需要的任何方法进行翻译查找varimageSource=ImageSource.FromResource(Source);返回图像源;然后你应该能够像这样使用你的图像。就像评论中提到的那样,如果您希望它开箱即用,请将它们放在您各自平台项目的Resources文件夹中。这样,您还可以利用现有的自动调整大小机制。要阅读有关此方法的更多信息,请参阅此页面通过向右侧文件夹添加正确的命名约定,您可以简单地引用文件名,Xamarin.Forms会将其转换为适合平台的格式。我想你可以做得更简单一点。这对我有用。将图像放在每个平台上的适当位置,例如。Android上的资源/绘图在您的Xaml中:在您的视图模型中:privatestring_someImage="icon_eye_hidden";publicstringsomeImage{get=>this._someImage;设置{如果(this._someImage==value)返回;this._someImage=值;this.RaisePropertyChanged(()=>this.someImage);然后只需将someImage设置为图像的名称(不带扩展名),它就会更新。以上就是C#学习教程:在xamarinform上动态绑定图片源分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: