Example #1
0
        public Grid10Cartas(MemoramaViewModel ViewModel)
        {
            double ancho = App.Width / 4;

            ViewModel.CardSize = (int)Device.OnPlatform((ancho * .6), (ancho * 1.3), (ancho * 1.3));

            RowDefinitions = new RowDefinitionCollection
            {
                new RowDefinition {
                    Height = new GridLength(ancho, GridUnitType.Absolute)
                },
                new RowDefinition {
                    Height = new GridLength(ancho, GridUnitType.Absolute)
                },
                new RowDefinition {
                    Height = new GridLength(ancho, GridUnitType.Absolute)
                },
                new RowDefinition {
                    Height = new GridLength(ancho, GridUnitType.Absolute)
                },
                new RowDefinition {
                    Height = new GridLength(ancho, GridUnitType.Absolute)
                }
            };
            ColumnDefinitions = new ColumnDefinitionCollection
            {
                new ColumnDefinition {
                    Width = new GridLength(ancho, GridUnitType.Absolute)
                },
                new ColumnDefinition {
                    Width = new GridLength(ancho, GridUnitType.Absolute)
                },
                new ColumnDefinition {
                    Width = new GridLength(ancho, GridUnitType.Absolute)
                },
                new ColumnDefinition {
                    Width = new GridLength(ancho, GridUnitType.Absolute)
                }
            };

            int col = 0;
            int ren = 0;

            for (int i = 0; i < ViewModel.CardCount * 2; i++)
            {
                if (col == 4)
                {
                    col = 0;
                    ren++;
                }
                var imgTmp = new ImageButton
                {
                    BackgroundColor    = Color.White,
                    BorderWidth        = 0,
                    BorderColor        = Color.White,
                    BindingContext     = ViewModel.MemoryCardList[i],
                    Command            = ViewModel.SeleccionaCartaCommnad,
                    CommandParameter   = i,
                    Orientation        = ImageOrientation.ImageToLeft,
                    ImageWidthRequest  = ViewModel.CardSize,
                    ImageHeightRequest = ViewModel.CardSize
                };
                imgTmp.SetBinding(ImageButton.SourceProperty, new Binding("Imagen", BindingMode.OneWay, new ImageConverter()));
                Children.Add(imgTmp, col, ren);
                col++;
            }
        }
Example #2
0
        public GamePage(int nivel, double width)
        {
            BindingContext  = new MemoramaViewModel();
            App.Width       = width;
            ViewModel.Nivel = nivel;
            ViewModel.ExecuteBarajaCartasCommand();
            Title           = ViewModel.CardCount.ToString() + " pares";
            BackgroundColor = Color.White;

            var refresh = new Button
            {
                Command         = ViewModel.BarajaCartasCommand,
                Text            = "Barajar de nuevo",
                TextColor       = Color.White,
                BorderColor     = Color.Green,
                BackgroundColor = Color.Green,
                WidthRequest    = 140,
                HeightRequest   = 60
            };

            StackLayout panel = new StackLayout
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Orientation       = StackOrientation.Vertical,
                Spacing           = 6,
                Padding           = new Thickness(20, Device.OnPlatform(10, 20, 20), 20, Device.OnPlatform(10, 20, 20)),
            };

            panel.Children.Add(new Label
            {
                Text      = "juego de memoria",
                TextColor = Color.Gray,
                Font      = Font.SystemFontOfSize(Device.OnPlatform(30, 30, 50))
            });

            StackLayout stats = new StackLayout
            {
                Orientation       = StackOrientation.Horizontal,
                VerticalOptions   = LayoutOptions.Center,
                HorizontalOptions = LayoutOptions.Start,
                HeightRequest     = 40,
                Spacing           = 4
            };

            stats.Children.Add(new Label
            {
                Text      = "Movimientos:",
                TextColor = Color.Green,
            });

            Label movtos = new Label
            {
                WidthRequest = 30,
                Text         = "0",
                TextColor    = Color.Red
            };

            movtos.SetBinding(Label.TextProperty, new Binding("Tiradas", BindingMode.OneWay, new StringConverter()));
            stats.Children.Add(movtos);
            stats.Children.Add(new Label
            {
                Text      = "Pares:",
                TextColor = Color.Green,
            });

            Label pares = new Label
            {
                WidthRequest = 30,
                Text         = "0",
                TextColor    = Color.Red
            };

            pares.SetBinding <MemoramaViewModel>(Label.TextProperty, vm => vm.Pares, BindingMode.OneWay, new StringConverter());
            stats.Children.Add(pares);
            panel.Children.Add(stats);

            StackLayout status = new StackLayout
            {
                Orientation = StackOrientation.Horizontal,
                Spacing     = 4,
            };

            status.Children.Add(new Label
            {
                Text      = "Estado:",
                TextColor = Color.Green,
            });

            Label estado = new Label
            {
                WidthRequest = 340,
                Text         = "",
                TextColor    = Color.Red
            };

            estado.SetBinding(Label.TextProperty, "Status");
            status.Children.Add(estado);
            panel.Children.Add(status);

            if (ViewModel.Nivel == 0)
            {
                var cartas = new Grid6Cartas(ViewModel);
                panel.Children.Add(cartas);
            }
            else if (ViewModel.Nivel == 1)
            {
                var cartas = new Grid10Cartas(ViewModel);
                panel.Children.Add(cartas);
            }
            panel.Children.Add(refresh);

            var scrollview = new ScrollView
            {
                VerticalOptions = LayoutOptions.FillAndExpand,
                Orientation     = ScrollOrientation.Vertical,
                HeightRequest   = App.Height,
                Content         = panel
            };

            Content = scrollview;
        }