2017-09-27 112 views
0

我正在開發Xamarin表單,跨平臺應用(Android和iOS)。我想爲登錄表單提供背景圖片。Xamarin表單背景圖像不能正常工作

我把它放在窗體和代碼的構造方法是:

this.BackgroundImage = ImageSource.FromResource("PCLProjectName.Images.Login.loginbackground.png").ToString(); 

與圖像都可以在PCL的項目,我已經設置了行動財產Embedded resource

PCL項目文件夾層次結構如下

Root 
- Images 
    - Login 
     -loginbackground.png 

圖像不顯示

回答

0

對於圖像的工作,必須將它們放置在不同的文件夾中iOSandroid。子文件夾或自定義文件結構不能用於我的知識。

對於Android設備,圖像必須位於Android>Resources>Drawable下的Android項目中。構建動作設置爲Android Resource(該文件夾應該已經存在)

對於iOS設備,圖像必須位於iOS項目文件夾iOS>Resources中。生成操作設置爲Bundle Resource(此文件夾也應該已經存在)

隨着各自的文件夾中的圖片,你可以設置圖像,像這樣.. this.BackgroundImage = ImageSource.FromFile("loginbackground.png")

編輯:當您PCL嵌入的資源的方法..

您可以在某處運行這段代碼,以查看在資源中正確檢測到圖像。我從經驗中知道有一些奇怪的文件命名的問題(雖然我沒有看到任何我已經在你的例子中遇到)

var assembly = typeof(EmbeddedImages).GetTypeInfo().Assembly; 
    foreach (var res in assembly.GetManifestResourceNames()) 
    System.Diagnostics.Debug.WriteLine("found resource: " + res); 
+0

我知道這種方法,我有很多靜態圖像,所以我想把它放在各自的文件夾,以便它的易於管理。請檢查以下鏈接:https://developer.xamarin.com/guides/xamarin-forms/user-interface/images/嵌入式圖像是可能的 – Mahajan344

+0

是否可以將圖像放入PCL的根文件夾中?爲什麼'.ToString()'追加到你的圖像行? – Bejasc

+0

@ Mahajan344用可能有幫助的代碼更新了答案。另一件嘗試我在這裏看到https://forums.xamarin.com/discussion/comment/95139/#Comment_95139 - 你可以使用'FromResource'加載並提供文件名,沒有文件夾目錄 - 雖然我沒有嘗試過這個。 – Bejasc

0

如果你想在XAML文件中添加背景圖像中Xamarin整個頁面項目,然後使用BackgroundImage屬性將您的圖像添加到資源 - >可繪製文件夾下的Android項目以及iOS資源文件夾。

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
        xmlns:local="clr-namespace:PhoneDailerDemo" 
        x:Class="PhoneDailerDemo.MainPage" 
        BackgroundImage="image3.jpg"> 

      <Label Text="Welcome to Xamarin Forms!" 
        VerticalOptions="Center" 
        HorizontalOptions="Center" /> 
      <StackLayout Padding="100"> 
       //.......... 
      </StackLayout> 
    </ContentPage>