AndroidプロジェクトとiOSプロジェクトがXamlで通常使用できるように、私のソリューションで共有プロジェクト内に画像をアップロードしようとしています。働いていない、私は理由を知らない。誰もそれがなぜ機能していないのか説明できますか?XamarinはAndroidとiOS用の画像を持つ共有プロジェクトを作成します
拡張子:
[ContentProperty("Source")]
public class ImageResourceExtension : IMarkupExtension
{
public string Source { get; set; }
public object ProvideValue(IServiceProvider serviceProvider)
{
if (Source == null)
{
return null;
}
// Do your translation lookup here, using whatever method you require
var imageSource = ImageSource.FromResource(Source);
return imageSource;
}
}
XAML:拡張にブレークポイントを置く
<Image Source="{extensions:ImageResource MyProject.Assets.fechar.png}" HorizontalOptions="Start" HeightRequest="16" Focused="Image_Focused" BackgroundColor="Red" WidthRequest="15" />
それは通常私のリストの各項目に対して一度そこに行きます。
私はまた、コードビハインドでハードコードされたバインディングをテスト用に挿入しようとしましたが、ImageSource.FromResourceを使用しても機能しません。
イメージファイルは、ドキュメントに示されているようにEmbbedResourceです。
プロジェクトの構造を表示できますか?この画像はどこにありますか?共有プロジェクトのAssetsフォルダですか? –
デバイスに基づいてさまざまなサイズのイメージを必要としない場合は、埋め込みイメージを使用することをお勧めします。異なるサイズが必要な場合は、プロジェクト固有のフォルダを使用する必要があります。ここでそれをよく読んで、あなたの質問をしてください。 https://developer.xamarin.com/guides/xamarin-forms/user-interface/images/ – batmaci