2016-09-07 4 views
1

전체 앱의 배경 이미지를 구현하고 싶습니다.Xamarin.Forms BackgroundImage

Android에서 global style.xml <item name="android:windowBackground">@drawable/appbg</item>을 사용합니다. iOS에서 어떻게 이것을 할 수 있습니까?

somethig이 (가) 가능합니까?

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

2 : AppDelegateUIIamgeUIColor.FromPatternImage 통해 Window.BackgroundColor 할당하려면에서 :

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

답변

1

이 문제는 CustomNavigationPageRenderer를 사용하여 해결했습니다. 나는 backgroundColor로 설정하면

[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

1이 배경을보고 싶은 각 View에서를, 당신은 UIColor을 설정해야 ~ Clear :

View.BackgroundColor = UIColor.Clear; 

참고 : 각 장치가 해상도가 적절한 이미지를 얻으려면 여러 이미지 크기를 사용해야합니다.

참고 :이 응용 프로그램의 전체 수명에 영향을 미친다 메모리 돼지는 이것이 질감/타일 이미지 (iOS 또는 Android)와 실제로 하나의 이미지가 실제로 전체에 걸쳐이 아니면, 정말 나쁜 화면.

+1

이 오류는'표시 Foundation.ModelNotImplementedException : 유형의 예외 'Foundation.ModelNotImplementedException가'thrown.'했다. – mlauth

+0

@mlauth'Window' 속성을 오버라이드하지 않은 커스텀'UIApplicationDelegate'를 가지고 있습니까? 아니면 템플릿에서 생성 된'AppDelegate'에서'Window' 속성을 제거할까요? 정말 오래된 버전의 Xamarin.iOS를 iOS4와 함께 사용 하시겠습니까?, 정말로 오래된/오래된 코드를 사용 하시겠습니까? – SushiHangover

+0

이것을 시험하기 위해, 나는 내가 알 수있는 한 모든 것이 최신 상태 인 테스트 프로젝트를 만들었습니다. Visual Studio 및 Xamarin Studio에서도 같은 오류가 발생합니다. – mlauth