我在Xamarin.Forms应用程序中显示Image时遇到了问题。尽管遵循了正确的配置步骤,但图像仍不显示。下面是我的XAML和代码隐藏的简化版本:
XAML:
<ScrollView Orientation="Horizontal">
<StackLayout x:Name="menuStack1" Orientation="Horizontal">
</StackLayout>
</ScrollView>
字符串
C# Code-Behind:
public MainPage()
{
InitializeComponent();
Add();
}
private void Add()
{
var image = new Image
{
Source = "YourNamespace.icon.png", // Replace YourNamespace with the namespace of your project
Aspect = Aspect.AspectFit,
HeightRequest = 50,
WidthRequest = 50,
AutomationId = "i"
};
// Add this line to check if the image exists
Console.WriteLine($"Image file exists: {ImageSource.FromResource("YourNamespace.icon.png") != null}");
image.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => Image_Tapped()) });
menuStack1.Children.Add(image);
}
private void Image_Tapped()
{
DisplayAlert("Image Tapped", "Image tapped", "OK");
}
型
我已经验证了图像文件被标记为嵌入式资源,并且文件路径和命名空间都是正确的。但是,图像没有显示。代码中的Console.WriteLine语句表示找不到图像文件。
是什么原因导致了这个问题,我该如何进行故障排除或解决它?我是否应该采取任何其他步骤来确保正确加载映像?
如有任何指导或建议,将不胜感激。谢谢!
1条答案
按热度按时间mi7gmzs61#
有两种方法可以显示案例的图像,
选项1使用嵌入镜像
当在每个平台上使用相同的图像时,建议使用此方法,并且此方法特别适合于创建组件,因为图像与代码捆绑在一起。
要使用它,只需像您一样将图像放置在Main项目中,并将Build Action设置为EmbeddedResource。
然后使用下面的代码获取图像源,
字符串
选项2使用本地镜像
对于Android,请使用Build Action:AndroidResource将图片放置在Android项目的Resources/drawable目录中。
对于iOS,可以使用Build Action:BundleResource将镜像放置在iOS项目的Resources目录中,也可以使用Asset Catalog Image Sets。
对于UWP -映像应放置在UWP项目的根目录中,并带有Build Action:Content。
那么当你使用这个图像的时候,不需要使用空格,只需要设置,
型
有关更多信息,请参阅Images in Xamarin.Forms