コード例 #1
0
ファイル: Test.cs プロジェクト: Lelelo1/NativeObject
        async void ITest.Test(StackLayout element)
        {
            var ui = await element.On <Xamarin.Forms.PlatformConfiguration.iOS>().iOSAsync();

            Console.WriteLine("ui: " + ui);
            ui.BackgroundColor = UIColor.Brown;
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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()
            });
        }
コード例 #4
0
        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);
        }