async void ITest.Test(StackLayout element) { var ui = await element.On <Xamarin.Forms.PlatformConfiguration.iOS>().iOSAsync(); Console.WriteLine("ui: " + ui); ui.BackgroundColor = UIColor.Brown; }
async void ITest.Test(StackLayout element) { var view = await element.On <Xamarin.Forms.PlatformConfiguration.Android>().AndroidAsync(); Console.WriteLine("view: " + view); view.SetBackgroundColor(Android.Graphics.Color.Brown); }
ContentPage CreateTestPage(TestPoint test) { Color backgroundColor = test.BackgroundColor ? _transparentColor : _nontransparentColor; double opacity = test.Opacity ? _transparentOpacity : _nonTransparentOpacity; bool inputTransparent = test.InputTransparent; var grid = new Grid { AutomationId = "testgrid", HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill }; grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Star }); var instructions = new Label { HorizontalOptions = LayoutOptions.Fill, HorizontalTextAlignment = TextAlignment.Center, Text = $"Tap the 'Add Overlay' button, then tap the button labeled 'Button'." + (test.ShouldBeTransparent ? $" If the label below's text changes to {Success} the test has passed." : " If the label below's text remains unchanged, the test has passed.") }; grid.Children.Add(instructions); var results = new Label { HorizontalOptions = LayoutOptions.Fill, HorizontalTextAlignment = TextAlignment.Center, Text = Running }; grid.Children.Add(results); Grid.SetRow(results, 1); var button = new Button { Text = DefaultButtonText, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center }; button.Clicked += (sender, args) => { results.Text = test.ShouldBeTransparent ? Success : Failure; }; var layout = new StackLayout { AutomationId = Overlay, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill, BackgroundColor = backgroundColor, InputTransparent = inputTransparent, Opacity = opacity }; // Bump up the elevation to cover FastRenderer buttons layout.On <Android>().SetElevation(10f); grid.Children.Add(button); Grid.SetRow(button, 3); var addOverlayButton = new Button() { Text = AddOverlay }; addOverlayButton.Clicked += (sender, args) => { grid.Children.Add(layout); Grid.SetRow(layout, 3); }; grid.Children.Add(addOverlayButton); Grid.SetRow(addOverlayButton, 2); return(new ContentPage { Content = grid, Title = test.ToString() }); }
static ContentPage CreateTestPage(bool cascades, bool transition) { var grid = new Grid { AutomationId = "testgrid", HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill }; grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Star }); var instructions = new Label { HorizontalOptions = LayoutOptions.Fill, HorizontalTextAlignment = TextAlignment.Center, Text = $"Wait 5 seconds. Tap the button labeled '{UnderButtonText}'. Then tap the button labeled '{OverButtonText}'." + $" If the label below's text changes to '{Success}' the test has passed." }; grid.Children.Add(instructions); var results = new Label { HorizontalOptions = LayoutOptions.Fill, HorizontalTextAlignment = TextAlignment.Center, Text = Running }; grid.Children.Add(results); Grid.SetRow(results, 1); var underButton = new Button { Text = UnderButtonText, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center }; bool overPressed = false; bool underPressed = false; bool layoutTapped = false; underButton.Clicked += (sender, args) => { underPressed = true; EvaluateTest(results, cascades, overPressed, underPressed, layoutTapped); }; var overButton = new Button { Text = OverButtonText, HorizontalOptions = LayoutOptions.End }; overButton.Clicked += (sender, args) => { overPressed = true; EvaluateTest(results, cascades, overPressed, underPressed, layoutTapped); }; var layout = new StackLayout { AutomationId = Overlay, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill, InputTransparent = true, CascadeInputTransparent = cascades, BackgroundColor = Color.Blue, Opacity = 0.2 }; layout.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => { layoutTapped = true; EvaluateTest(results, cascades, overPressed, underPressed, layoutTapped); }) }); layout.Children.Add(overButton); // Bump up the elevation to cover FastRenderer buttons layout.On <Android>().SetElevation(10f); grid.Children.Add(underButton); Grid.SetRow(underButton, 2); grid.Children.Add(layout); Grid.SetRow(layout, 2); var page = new ContentPage { Content = grid, Title = cascades.ToString() }; if (transition) { page.Appearing += async(sender, args) => { await Task.Delay(1000); cascades = !cascades; layout.CascadeInputTransparent = cascades; }; } return(page); }