2017-06-01 34 views
0

Visual Studio Project Image Xamarinの新機能で、単純なイメージを簡単なページに表示するために1日以上を費やしてしまった。Xamarinフォームイメージ/埋め込みイメージの問題

私は画像が埋め込まれたリソース(添付画像参照)として設定されているVisual Studioの2017年に

を使用しています。実行時にエラーはありません。画像は表示されません。

私は次のことを試してみました:

<Image Source="XF0003.Assets.logo.png" /> 
<Image Source="Assets.logo.png" /> 
<Image Source="logo.png" /> 
<Image Source="{local:ImageResource XF0003.Assets.logo.png}" /> 
<Image Source="{local:ImageResource Assets.logo.png}" /> 
<Image Source="{local:ImageResource logo.png}" /> 

XAMLページコード:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      xmlns:local="clr-namespace:XF0003" 
      x:Class="XF0003.MainPage"> 

    <StackLayout> 
     <Image Source="Assets.logo.png" /> 
     <Label Text="Username" /> 
     <Entry x:Name="usernameEntry" Placeholder="username" /> 
     <Label Text="Password" /> 
     <Entry x:Name="passwordEntry" IsPassword="true" /> 
     <Button Text="Login" Clicked="PageOne" /> 
     <Label x:Name="messageLabel" /> 
    </StackLayout> 
</ContentPage> 

XAML.CSページコード:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Xamarin.Forms; 

namespace XF0003 
{ 
    public partial class MainPage : ContentPage 
    { 
     public MainPage() 
     { 
      InitializeComponent(); 
     } 

     private async void PageOne(object sender, EventArgs e) 
     { 
      Navigation.InsertPageBefore(new Page1(), this); 
      await Navigation.PopAsync(); 
     } 
    } 
    [ContentProperty("Source")] 
    public class ImageResourceExtension : Xamarin.Forms.Xaml.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; 
     } 
    } 
} 
+0

画像を追加するのを忘れました –

+0

何が起こったのかわかりませんが、私の投稿に画像をもう一度追加しました。 – jf974

答えて

1

を使用すると、リンクされた画像では、それがどのように見えますxamarin.formsプロジェクトにのみ画像を保存しました。私はイメージがそれぞれのプロジェクトに保存される必要があると信じています。

すなわち

XF0003.Droid/Resources/Drawable (For Android) 

XF0003.iOS/Resources (For iOS) 

あなたのイメージが同じ名前を持つことを確認してください。

Androidの写真の場合は、AndroidResourceのビルドアクションを行います。 iOSピクチャでは、ビルドアクションBundleResourceを行います。

両方のDoNotCopy。

あなたは画像を参照して、ちょうど[名前]を使用します。[ファイルタイプ]

<Image Source="logo.png" /> 

また、非常に詳細hereで説明しています。

+0

提供したリンクの埋め込み画像セクションからコードを取りました。ページのそのセクションから、画像は個々のプロジェクトレベルではなくプロジェクトレベルのように見えます。しかし、イメージをAndroid/Resources/Drawableフォルダに移動し、AndroidResourcesに設定しても、表示するイメージは表示されません。私はの両方を使用しました。いずれも画像を見せなかった。 – jf974

+0

あなたが何を指しているのか分かりません。それを説明する正確なセクションへのリンクがあります。私はこの同じページを自分のコードにも使用しました。 https://developer.xamarin.com/guides/xamarin-forms/user-interface/images/#Local_Images – mac10688

+1

xamarin形式の画像を参照するときは、それがlogo.pngであることを参照してください。 – mac10688

関連する問題