我正在使用Xamarin.Forms开发一个交叉式平台应用程序。我想制作一个带图像的按钮,但我不知道如何指定图像的路径。当我使用这个注释时,它可以工作:
<Button Text="Naviga tra i Piani del Museo" Image="foo.png"/>
但是当我的图像在某些文件夹(folder1 / folder2)中时,以下代码不起作用:
<Button Text="Naviga tra i Piani del Museo" Image="folder1/folder2/foo.png"/>
那么我怎样才能正确指定图像的路径?
答案 0 :(得分:4)
您无法将图像嵌套到文件夹中。 iOS和Android希望它们是资源,WP希望它们位于App的根文件夹中。
Xamarin Forms文档有一个关于working with images的部分。
答案 1 :(得分:0)
使用PCL保持图像通用是一项艰巨的任务。 所以单独做。
请记住,在android项目的情况下,您必须将图像复制到Resources&gt; drawable。
答案 2 :(得分:0)
对于使用Xamarin.Forms项目的文件夹,这对我有用。
您需要将您的资源(在这种情况下为图像文件)放到Xamarin.Form项目中的文件夹中(对于此示例文件夹称为“Assets”)并设置Build Action“Content”。
其次,对于使用Android的资源,您需要将文件放入资源&gt; Android项目中的drawable文件夹(此处不能使用任何文件夹),设置构建操作“AndroidResource”。
<ContentPage.Resources>
<ResourceDictionary>
<OnPlatform x:Key="StartButtonImage"
x:TypeArguments="FileImageSource"
Android="button_image.png"
WinPhone="Assets\button_image.png"
iOS="Assets/button_image.png"/>
</ResourceDictionary>
</ContentPage.Resources>
<ContentPage.Content>
<Grid>
<Button Image="{StaticResource StartButtonImage}" BackgroundColor="Transparent"/>
</Grid>
</ContentPage.Content>
请注意,对于iOs,您需要使用“/”创建路径,使用“\”创建WinPhone / UWP。
答案 3 :(得分:-1)
您应该在OnPlatform标记中指定按钮的Image属性,以便为每个平台提供不同的路径。这是Box View的示例,您可以尝试相同的Button Image属性。
<BoxView HorizontalOptions="Center">
<BoxView.Color>
<OnPlatform x:TypeArguments="Color"
iOS="Green"
Android="#738182"
WinPhone="Accent" />
</BoxView.Color>
<BoxView.WidthRequest>
<OnPlatform x:TypeArguments="x:Double"
iOS="30"
Android="40"
WinPhone="50" />
</BoxView.WidthRequest>
</BoxView>