private View [] InitHackyViews() { var colour = Color.FromRgba(0.0, 0.0, 0.0, 1.0); var tapFieldBoxView = new BoxView() { Color = Color.Transparent }; var bestScoreLabel = new CLFormsLabel() { Text = "0", TextColor = colour, HorizontalTextAlignment = TextAlignment.End }; var userScoreLabel = new CLFormsLabel() { Text = "0", TextColor = colour, HorizontalTextAlignment = TextAlignment.End }; var menuLabel = new CLFormsLabel() { Text = App.Strings.Menu, TextColor = colour }; var startLabel = new CLFormsLabel() { Text = App.Strings.Restart, TextColor = colour }; var resultsLabel = new CLFormsLabel() { Text = App.Strings.Results, TextColor = colour }; var nameEntry = new CLFormsEntry() { Text = "", Keyboard = Keyboard.Text, // IsVisible = false, LettersLimit = 11 }; return(new View [] { tapFieldBoxView, bestScoreLabel, userScoreLabel, menuLabel, startLabel, resultsLabel, nameEntry }); }
public MainPage() { var backgroundLayout = new RelativeLayout() { BackgroundColor = Color.Black }; var mainLayout = new RelativeLayout() { BackgroundColor = Color.Transparent }; View [] hackyViews = null; if (Settings.Taught) { hackyViews = this.InitHackyViews(); } this.Game = new ColorLinesNG(mainLayout, hackyViews); bool desktop = Device.Idiom == TargetIdiom.Desktop; if (!desktop && !App.iPhoneX) { mainLayout.Children.Add( this.Game.GameView, Constraint.RelativeToParent(parent => { return(0.0); }), Constraint.RelativeToParent(parent => { return(0.0); }), Constraint.RelativeToParent(parent => { return(parent.Width); }), Constraint.RelativeToParent(parent => { return(parent.Height); }) ); } else { backgroundLayout.Children.Add( this.Game.GameView, Constraint.RelativeToParent(parent => { return(0.0); }), Constraint.RelativeToParent(parent => { return(0.0); }), Constraint.RelativeToParent(parent => { return(parent.Width); }), Constraint.RelativeToParent(parent => { return(parent.Height); }) ); } if (Settings.Taught) { this.AddHackyViews(mainLayout, hackyViews); } if (!desktop) { backgroundLayout.Children.Add( mainLayout, Constraint.RelativeToParent(parent => { return(0.0); }), Constraint.RelativeToParent(parent => { switch (Device.RuntimePlatform) { default: return(0.0); case Device.iOS: return(App.iOSTopOffset); } }), Constraint.RelativeToParent(parent => { return(parent.Width); }), Constraint.RelativeToParent(parent => { switch (Device.RuntimePlatform) { default: return(parent.Height); case Device.iOS: return(parent.Height - (App.iOSTopOffset + App.iOSBottomOffset)); } }) ); } else { backgroundLayout.Children.Add( mainLayout, Constraint.RelativeToParent(parent => { double width; if (parent.Width < App.MinDesktopWidth) { width = App.MinDesktopWidth; } else { double height; if ((parent.Height * App.MinDesktopRatio) > parent.Width) { height = parent.Width / App.MinDesktopRatio; } else { height = parent.Height; } width = height * App.MinDesktopRatio; } return(parent.Width * 0.5 - width * 0.5); }), Constraint.RelativeToParent(parent => { if ((parent.Height * App.MinDesktopRatio) > parent.Width) { return(parent.Height * 0.5 - parent.Width / App.MinDesktopRatio * 0.5); } else { return(0.0); } }), Constraint.RelativeToParent(parent => { double width; if (parent.Width < App.MinDesktopWidth) { width = App.MinDesktopWidth; } else { double height; if ((parent.Height * App.MinDesktopRatio) > parent.Width) { height = parent.Width / App.MinDesktopRatio; } else { height = parent.Height; } width = height * App.MinDesktopRatio; } return(width); }), Constraint.RelativeToParent(parent => { if ((parent.Height * App.MinDesktopRatio) > parent.Width) { return(parent.Width / App.MinDesktopRatio); } else { return(parent.Height); } }) ); } var loadingLabel = new CLFormsLabel() { Text = App.Strings.Loading, TextScale = 1.337f, BackgroundColor = Color.FromRgba(0, 0, 0, 255) }; backgroundLayout.Children.Add( loadingLabel, Constraint.RelativeToParent(parent => { return(0.0); }), Constraint.RelativeToParent(parent => { return(0.0); }), Constraint.RelativeToParent(parent => { return(parent.Width); }), Constraint.RelativeToParent(parent => { return(parent.Height); }) ); this.Game.Inited += (sender, ev) => { Device.BeginInvokeOnMainThread(() => { backgroundLayout.Children.Remove(loadingLabel); }); }; this.Content = backgroundLayout; }