Xamarin.形成背景图像
我想为整个应用程序实现一个背景图像 我在Android上使用global style.xmlXamarin.形成背景图像,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
@drawable/appbg
。我如何在iOS上实现这一点
这样的事情可能发生吗
public override bool FinishedLaunching(UIApplication app,
NSDictionary options)
{
...
UIWindow.Appearance.BackgroundColor = UIColor.FromPatternImage(
UIImage.FromFile("appbg.jpg"));
...
}
1st:在您的
AppDelegate
中,通过UIColor.FromPatternImage
指定窗口背景色aUIIamge
:
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元素一个透明的背景。谢谢