2016-09-07 8 views
1

アプリ全体の背景画像を実装したいと思います。Xamarin.Forms BackgroundImage

Androidでglobal style.xml <item name="android:windowBackground">@drawable/appbg</item>を使用しています。 iOSでこれをどうやって実現できますか?

このようなsomethigは可能ですか?第一

public override bool FinishedLaunching(UIApplication app, 
    NSDictionary options) 
{ 
    ... 
    UIWindow.Appearance.BackgroundColor = UIColor.FromPatternImage(
    UIImage.FromFile("appbg.jpg")); 
    ... 
} 

答えて

1

私はこれをCustomNavigationPageRendererで解決しました。

[assembly: ExportRenderer(typeof(OIdx.XForms.Pages.CustomNavigationPage), 

typeof(OIdx.XForms.iOS.Renderers.CustomNavigationPageRenderer))] 
namespace OIdx.XForms.iOS.Renderers 
{ 
    class CustomNavigationPageRenderer : NavigationRenderer 
    { 
     public override void ViewDidLoad() 
     { 
      base.ViewDidLoad(); 
      var img = UIImage.FromBundle("appbg5.jpg"); 
      UIImageView iv = new UIImageView(img); 
      iv.Layer.ZPosition = -1; 
      this.View.AddSubview(iv); 
     } 
    } 
} 
+0

これに感謝しますが、私はまだそれが私のために働くことができませんでした。オーバーライドされたViewDidLoad()が呼び出されていますが、アプリケーションは変更されません。そこに任意のアイデア?それを稼働させるために他に何かしなければならなかったことはありますか? – Jonathan

+1

さて、それを持っています。私はXFページのContentPage要素に透明な背景を与えなければなりませんでした。ありがとう! – Jonathan

0

public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) 
{ 
    Window.BackgroundColor = UIColor.FromPatternImage(new UIImage("background.png")); 
    return true; 
} 

第二:あなたはこのような背景を見たい各View、あなたがUIColorを設定する必要があなたのAppDelegateUIColor.FromPatternImage経由Window.BackgroundColorUIIamgeを割り当てるにはClear

View.BackgroundColor = UIColor.Clear; 

注:各デバイスが適切な解像度のイメージを取得するには、複数のイメージサイズを使用する必要があります。

FYI:これは、アプリケーションの全体の寿命に影響を与えるメモリ食いである、これはテクスチャ/タイル画像(のiOSまたはAndroid)ではなく、実際に単一画像が実際に全体にまたがる場合、それは本当に悪いです画面。

+1

私はBackgroundColorを設定した場合、このエラーは 'Foundation.ModelNotImplementedException表示されます。種類の例外は、「Foundation.ModelNotImplementedException」thrown.'ました。 – mlauth

+0

@mlauthあなたは 'Window'プロパティをオーバーライドしなかったカスタム' UIApplicationDelegate'を持っていますか?あるいは、テンプレートが作成した 'AppDelegate'から' Window'プロパティを削除しますか?本当に古いバージョンのXamarin.iOSをiOS4で使用していますか?レポから本当に古い/古いコードを使用していますか? – SushiHangover

+0

これをテストするには、テストプロジェクトを作成しました。 Visual StudioとXamarin Studioで同じエラーが発生しました。 – mlauth