Xamarin.形成背景图像

Xamarin.形成背景图像,xamarin,xamarin.ios,xamarin.forms,Xamarin,Xamarin.ios,Xamarin.forms,我想为整个应用程序实现一个背景图像 我在Android上使用global style.xml@drawable/appbg。我如何在iOS上实现这一点 这样的事情可能发生吗 public override bool FinishedLaunching(UIApplication app, NSDictionary options) { ... UIWindow.Appearance.BackgroundColor = UIColor.FromPatternImage( UI

我想为整个应用程序实现一个背景图像

我在Android上使用global style.xml
@drawable/appbg
。我如何在iOS上实现这一点

这样的事情可能发生吗

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

1st:在您的
AppDelegate
中,通过
UIColor.FromPatternImage
指定
窗口背景色
a
UIIamge

public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
    Window.BackgroundColor = UIColor.FromPatternImage(new UIImage("background.png"));
    return true;
}
2nd:在希望看到此背景的每个
视图中,必须将
UIColor
设置为
清除

View.BackgroundColor = UIColor.Clear;
注意:应使用多种图像大小,以便每个设备获得适当分辨率的图像


仅供参考:这是一个会影响应用程序整个生命周期的内存占用问题,如果这不是纹理/平铺图像(iOS或Android),而实际上一个图像实际上会覆盖整个屏幕,那就太糟糕了。

我用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);
        }
    }
}

如果我设置背景色,则会出现此错误
Foundation.ModelNotImplementedException:引发了类型为'Foundation.ModelNotImplementedException'的异常。
@mlauth是否有自定义
UIApplicationDelegate
未重写
窗口
属性?或者从创建的模板
AppDelegate
中删除
窗口
属性?使用iOS4?的Xamarin.iOS的一个非常旧的版本,使用repo?的非常旧/过时的代码来测试这个,我刚刚创建了一个测试项目,据我所知,一切都是最新的。Visual Studio和Xamarin Studio中存在相同的错误。@mlauth您在创建的
AppDelegate
中是否有被覆盖的
窗口
属性?@Jonathan请参见下面的答案,这应该可以工作。对于Android,请使用style.xml。谢谢,但我还没能让它为我工作。正在调用重写的ViewDidLoad(),但应用程序没有更改。有什么想法吗?你还需要做什么才能让它工作吗?好的,明白了。我只需要给XF页面的ContentPage元素一个透明的背景。谢谢